diff --git a/.github/ISSUE_TEMPLATE/cluster_api_version_update.md b/.github/ISSUE_TEMPLATE/cluster_api_version_update.md index 7b6d7811a..5db8eaf87 100644 --- a/.github/ISSUE_TEMPLATE/cluster_api_version_update.md +++ b/.github/ISSUE_TEMPLATE/cluster_api_version_update.md @@ -20,7 +20,6 @@ Update cluster-api version Update Kubernetes version - [ ] [go.mod](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/go.mod) - [ ] [Kubebuilder version](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/Makefile#L84) -- [ ] [scripts](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/fetch_ext_bins.sh#L29) If Go version is bumped, update it in the following files diff --git a/Makefile b/Makefile index 5f58ae9a9..4f32b6d90 100644 --- a/Makefile +++ b/Makefile @@ -587,6 +587,10 @@ endif yamllint: @docker run --rm $$(tty -s && echo "-it" || echo) -v $(PWD):/data cytopia/yamllint:latest /data --config-file /data/.yamllint --no-warnings +.PHONY: linkcheck +linkcheck: + @docker run -it --rm -w /input -v $(PWD):/input lycheeverse/lychee . --hidden + ## -------------------------------------- ## Cleanup / Verification ## -------------------------------------- diff --git a/docs/book/src/developer/conversion.md b/docs/book/src/developer/conversion.md index 6b86fb405..acc9b3ca0 100644 --- a/docs/book/src/developer/conversion.md +++ b/docs/book/src/developer/conversion.md @@ -14,12 +14,12 @@ kubebuilder create api --group --version --kind **_NOTE:_** [Refer for more detailed information about prerequisites.](https://kubebuilder.io/multiversion-tutorial/api-changes.html#changing-things-up) ## Conversion flow -1. In each “spoke” version package, add marker `+k8s:conversion-gen` directive pointing to the “hub” version package. It must be in `doc.go`. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1alpha4/doc.go) +1. In each “spoke” version package, add marker `+k8s:conversion-gen` directive pointing to the “hub” version package. It must be in `doc.go`. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta1/doc.go) 2. In “hub” version package, create `doc.go` file without any marker. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta1/doc.go) -3. In “spoke” version package, add a var `localSchemeBuilder = &SchemeBuilder.SchemeBuilder` in `groupversion_info.go` so the auto-generated code would compile. [Refer]( https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/e55357a520089abc6ac2a9ca91a5b9cf0606bbbc/api/v1alpha4/groupversion_info.go#L37) -4. In “hub” version package, create a `conversion.go` to implement the “hub” methods. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta1/conversion.go) +3. In “spoke” version package, add a var `localSchemeBuilder = &SchemeBuilder.SchemeBuilder` in `groupversion_info.go` so the auto-generated code would compile. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta1/groupversion_info.go#L38) +4. In “hub” version package, create a `conversion.go` to implement the “hub” methods. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta2/conversion.go) 5. Run target `make generate-go-conversions-core`, this will generate `zz_generated.conversion.go` in the spoke version package. -6. In "spoke" version package, update `{kind}_conversion.go` to implement Convertible for each type. When `conversion-gen` stops generating methods because of incompatibilities or we need to override the behavior, we stick them in this source file. Our “spoke” versions need to implement the Convertible interface. Namely, they’ll need ConvertTo and ConvertFrom methods to convert to/from the hub version. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1alpha4/ibmpowervs_conversion.go) +6. In "spoke" version package, update `{kind}_conversion.go` to implement Convertible for each type. When `conversion-gen` stops generating methods because of incompatibilities or we need to override the behavior, we stick them in this source file. Our “spoke” versions need to implement the Convertible interface. Namely, they’ll need ConvertTo and ConvertFrom methods to convert to/from the hub version. [Refer](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/api/v1beta1/ibmpowervs_conversion.go) ## References - [What are hubs and spokes?](https://book.kubebuilder.io/multiversion-tutorial/conversion-concepts.html) diff --git a/docs/book/src/developer/dependencies.md b/docs/book/src/developer/dependencies.md index 4557274c2..f36ad5a2b 100644 --- a/docs/book/src/developer/dependencies.md +++ b/docs/book/src/developer/dependencies.md @@ -10,12 +10,12 @@ - ##### K8s Packages | Package | Module name | Used by | | ------- | ----------- | ------- | -| api | [k8s.io/api](https://k8s.io/api) | [go.mod][go.mod1] | -| apiextensions-apiserver | [k8s.io/apiextensions-apiserver](https://k8s.io/apiextensions-apiserver) | [go.mod][go.mod1] | -| apimachinery | [k8s.io/apimachinery](https://k8s.io/apimachinery) | [go.mod][go.mod1] | -| cli-runtime | [k8s.io/cli-runtime](https://k8s.io/cli-runtime) | [go.mod][go.mod1] | -| client-go | [k8s.io/client-go](https://k8s.io/client-go) | [go.mod][go.mod1] | -| utils | [k8s.io/utils](https://k8s.io/utils) | [go.mod][go.mod1] | +| api | [api](https://github.com/kubernetes/api) | [go.mod][go.mod1] | +| apiextensions-apiserver | [apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | [go.mod][go.mod1] | +| apimachinery | [apimachinery](https://github.com/kubernetes/apimachinery) | [go.mod][go.mod1] | +| cli-runtime | [cli-runtime](https://github.com/kubernetes/cli-runtime) | [go.mod][go.mod1] | +| client-go | [client-go](https://github.com/kubernetes/client-go) | [go.mod][go.mod1] | +| utils | [utils](https://github.com/kubernetes/utils) | [go.mod][go.mod1] | | controller-runtime | [sigs.k8s.io/controller-runtime](https://sigs.k8s.io/controller-runtime) | [go.mod][go.mod1] | | controller-runtime/tools/setup-envtest | [sigs.k8s.io/controller-runtime/tools/setup-envtest](https://sigs.k8s.io/controller-runtime/tools/setup-envtest) | [hack/tools/go.mod][go.mod2] | | controller-tools | [sigs.k8s.io/controller-tools](https://sigs.k8s.io/controller-tools) | [hack/tools/go.mod][go.mod2] | @@ -50,7 +50,7 @@ | Package | Used by | Source | | --- | ----------- | ------ | | kind | [ensure-kind.sh](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/hack/ensure-kind.sh#L24) | [kind](https://github.com/kubernetes-sigs/kind) | -| kubebuilder-tools | [fetch_ext_bins.sh](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/scripts/fetch_ext_bins.sh#L29)
[Makefile](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/Makefile#L72) | [kubebuilder-tools](https://storage.googleapis.com/kubebuilder-tools) | +| kubebuilder | [Makefile](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/Makefile#L72) | [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) | [go.mod1]: https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/go.mod [go.mod2]: https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/hack/tools/go.mod \ No newline at end of file diff --git a/docs/book/src/developer/tilt.md b/docs/book/src/developer/tilt.md index 37e63a560..7a92e0b79 100644 --- a/docs/book/src/developer/tilt.md +++ b/docs/book/src/developer/tilt.md @@ -97,7 +97,7 @@ extra_args: --- ## Different flavors of deploying workload clusters using CAPIBM. -> **Note:** Currently, both [ClusterClass](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-class/index.html) and [ClusterResourceset](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-resource-set.html) are experimental features. By default, the workload cluster is deployed using the external Cloud Controller Manager (CCM). +> **Note:** Currently, both [ClusterClass](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-class/index.html) and [ClusterResourceset](https://cluster-api.sigs.k8s.io/tasks/cluster-resource-set.html#clusterresourceset-ga) are experimental features. By default, the workload cluster is deployed using the external Cloud Controller Manager (CCM). ### 1. Configuration to deploy workload cluster from ClusterClass template diff --git a/docs/book/src/introduction.md b/docs/book/src/introduction.md index 610995793..71f0a4085 100644 --- a/docs/book/src/introduction.md +++ b/docs/book/src/introduction.md @@ -1,10 +1,5 @@ # Kubernetes Cluster API Provider IBM Cloud -

-Kubernetes Cluster API Provider IBM Cloud -

- -------

Kubernetes-native declarative infrastructure for IBM Cloud.

## What is the Cluster API Provider IBM Cloud @@ -36,14 +31,14 @@ This book documents Cluster API Provider IBM Cloud v0.11. For other versions ple ## CAPIBM Supported Infrastructure-as-a-Service (IaaS)

-Supported IBM Cloud IaaS +Supported IBM Cloud IaaS

Currently, the CAPIBM project exclusively facilitates the deployment of Kubernetes (K8s) clusters solely on two IBM infrastructure offerings, namely [IBM VPC (Virtual Server Instances)](https://cloud.ibm.com/docs/vpc?topic=vpc-about-advanced-virtual-servers) and [IBM PowerVS](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-about-virtual-server). ## Quick Start -Check out the [getting started](./getting-started.html) section to create your first Kubernetes cluster on IBM Cloud using Cluster API. +Check out the [getting started](./getting-started.md) section to create your first Kubernetes cluster on IBM Cloud using Cluster API. ## Tilt-based development environment diff --git a/docs/book/src/topics/powervs/prerequisites.md b/docs/book/src/topics/powervs/prerequisites.md index 8b6c32da1..25e1dff4f 100644 --- a/docs/book/src/topics/powervs/prerequisites.md +++ b/docs/book/src/topics/powervs/prerequisites.md @@ -5,7 +5,7 @@ - If you want to use container, install [kind](https://github.com/kubernetes-sigs/kind#installation-and-usage). This is preferred. - If you want to use VM, install [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/), version 0.30.0 or greater. - If you want to use existing Kubernetes cluster, prepare your kubeconfig. -3. Install a [driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md) **if you are using minikube**. For Linux, we recommend kvm2. For MacOS, we recommend VirtualBox. +3. Install a [driver](https://minikube.sigs.k8s.io/docs/drivers/) **if you are using minikube**. For Linux, we recommend kvm2. For MacOS, we recommend VirtualBox. 4. An appropriately configured [Go development environment](https://golang.org/doc/install) 5. Install `clusterctl` tool (see [here](https://cluster-api.sigs.k8s.io/user/quick-start.html#install-clusterctl)) 6. Install `pvsadm` tool (see [here](https://github.com/ppc64le-cloud/pvsadm#installation)) diff --git a/docs/book/src/topics/vpc/creating-a-cluster.md b/docs/book/src/topics/vpc/creating-a-cluster.md index da031d75f..87513a3a7 100644 --- a/docs/book/src/topics/vpc/creating-a-cluster.md +++ b/docs/book/src/topics/vpc/creating-a-cluster.md @@ -5,7 +5,7 @@ following the steps below. > **Note**: > 1. The cluster will be deployed with [cloud controller manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/) -> 2. The [template](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/templates/cluster-template.yaml) uses the experimental feature gate [clusterresourceset](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-resource-set.html) which will create the necessary config map, secret and roles to run the cloud controller manager. Set `EXP_CLUSTER_RESOURCE_SET` to `true`. +> 2. The [template](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/blob/main/templates/cluster-template.yaml) uses the experimental feature gate [clusterresourceset](https://cluster-api.sigs.k8s.io/tasks/cluster-resource-set.html#clusterresourceset-ga) which will create the necessary config map, secret and roles to run the cloud controller manager. Set `EXP_CLUSTER_RESOURCE_SET` to `true`. > 3. To deploy a cluster using [ClusterClass](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-class/index.html), refer [here](#deploy-a-cluster-using-ibm-cloud-vpc-infrastructure-using-clusterclass). In addition to the above flags, set `CLUSTER_TOPOLOGY` environment variable to `true`. > 4. The list of IBM Cloud VPC Regions and Zones can be found [here](../../reference/regions-zones-mapping.md). diff --git a/docs/book/src/topics/vpc/prerequisites.md b/docs/book/src/topics/vpc/prerequisites.md index 1c8eac9ed..035d7433b 100644 --- a/docs/book/src/topics/vpc/prerequisites.md +++ b/docs/book/src/topics/vpc/prerequisites.md @@ -5,7 +5,7 @@ - If you want to use container, install [kind](https://github.com/kubernetes-sigs/kind#installation-and-usage). This is preferred. - If you want to use VM, install [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/), version 0.30.0 or greater. - If you want to use existing Kubernetes cluster, prepare your kubeconfig. -3. Install a [driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md) **if you are using minikube**. For Linux, we recommend kvm2. For MacOS, we recommend VirtualBox. +3. Install a [driver](https://minikube.sigs.k8s.io/docs/drivers/) **if you are using minikube**. For Linux, we recommend kvm2. For MacOS, we recommend VirtualBox. 4. An appropriately configured [Go development environment](https://golang.org/doc/install) 5. Install `clusterctl` tool (see [here](https://cluster-api.sigs.k8s.io/user/quick-start.html#install-clusterctl))