Prerequisite
- Install kubectl
- Install kustomize
v3.1.0+
- Outscale account with ak/sk Outscale Access Key and Secret Key
- A Kubernetes cluster:
- Container registry to store container image
- Registry secret registry-secret
Build
Clone
Please clone the project:
git clone https://github.com/outscale-dev/cluster-api-provider-outscale
User Credentials configuration
Put your ak/sk in osc-secret.yaml and launch:
/usr/local/bin/kubectl apply -f osc-secret.yaml
Registry credentials configuration
Public Outscale dockerhub
You can either use outscale/cluster-api-provider-outscale latest image.
Build and push own image
Or you can build and push image to your public or private registry
IMG=my-registry/controller:my-tag make docker-build
IMG=my-registry/controller:my-tag make docker-push
Deploy
Deploying Cluster Api
Please look at cluster-api section about deployment of cert-manager and cluster-api
Or you can use this to deploy cluster-api with cert-manager:
make deploy-clusterapi
Deploying Cluster API Provider Outscale
Deploy Cluster API Outscale controller manager
This step will deploy the Outscale Cluster API controller manager (currently compose of only of the Cluster Infrastructure Provider controller)
IMG=my-registry/controller:my-tag make deploy
Check your cluster is deployed
[root@cidev-admin cluster-api-provider-outscale]# kubectl get pod -n cluster-api-provider-outscale-system
NAME READY STATUS RESTARTS AGE
cluster-api-provider-outscale-controller-manager-7d5c48d67t6d7f 2/2 Running 0 22s
Watch controller log
this step will watch controller log:
kubectl logs -f cluster-api-provider-outscale-controller-manager-7d5c48d67t6d7f -n cluster-api-provider-outscale-system -c manager
Create your cluster
This step will create your infrastructure cluster.
It will create vpc, net, sg, routetables, eip, nat.
You can change parameter from cluster-template.yaml (please look at configuration) if you need:
kubectl apply -f example/cluster-template.yaml
Kubeadmconfig
You can use bootstrap to custom the bootstrap config.
Currently, we overwrite runc with containerd because of containerd
Get kubeconfig
In order to get kubeconfig please use: kubeconfig
Node Ready
In order to have node ready, you must have a CNI and CCM.
You can use [clusterresourceset][clusterresourceset] with label clustername + crs-cni and label clustername + crs-ccm where clustername is the name of your cluster.
To install cni you can use helm charts or clusteresourceset.
To install helm,please follow helm
A list of cni:
To install ccm, you can use helm charts or clusteresourceset.
CleanUp
Delete cluster
This step will delete your cluster with:
kubectl delete -f example/cluster-template.yaml
Delete Cluster API Outscale controller manager
This step will delete the Cluster Api Outscale controller manager with:
IMG=my-registry/controller:my-tag make undeploy
Delete Cluster Api
Please look at cluster-api section about deployment of cert-manager and cluster-api
Or you can use this to undeploy cluster-api with cert-manager:
make undeploy-clusterapi