Skip to content
Kubernetes cluster-api for Baidu Cloud
Go Makefile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd support machineset and machinedeployment Dec 11, 2018
config support machineset and machinedeployment Dec 11, 2018
docs
hack
pkg support machineset and machinedeployment Dec 11, 2018
.gitignore
.travis.yml
CONTRIBUTING.md
Dockerfile
Dockerfile_kubebuilder Tweak the cluster api framework with kube-builder. (#8) Nov 22, 2018
LICENSE Add more project initial skeleton. Oct 31, 2018
Makefile
OWNERS
OWNERS_ALIASES
PROJECT
README.md add doc tag Dec 13, 2018
SECURITY_CONTACTS
code-of-conduct.md
glide.lock deploy k8s with kubeadm Nov 24, 2018
glide.yaml

README.md

Cluster Api Provider Baiducloud

Build Status Go Report Card

Components

Binaries

  • cluster-api-controller: The one which has no dependencies with baiducloud provider, which includes the cluster controller and the machine controller.

Dockerization and helm/charts for deployment

We can dockerize the binaries and use helm/charts to deploy these three controllers into the cluster later.

Installation

Prerequisites

Local Binaries

kubectl sshpass

Build & Run manager

We just assume that you currently have a running Kubernetes cluster locally or in some public cloud, and you have your kubeconfig file under ~/.kube/config

~ glide install --strip-vendor
~ go build -o manager sigs.k8s.io/cluster-api-provider-baiducloud/cmd/manager
~ export SecretAccessKey=YOUR_ACCESS_KEY && export AccessKeyID=YOUR_KEY_ID
~ kubectl apply -f config/crds/cluster.yaml
~ kubectl apply -f config/crds/machine.yaml
~ kubectl apply -f config/crds/machineset.yaml
~ kubectl apply -f config/crds/machinedeployment.yaml
~ ./manager -kubeconfig ~/.kube/config -alsologtostderr -v 4

Run an example

~ kubectl apply -f config/samples/cluster.yaml
~ kubectl apply -f config/samples/machinedeployments.yaml

Usage

Cluster Resource Creation Example

apiVersion: "cluster.k8s.io/v1alpha1"
kind: Cluster
metadata:
  name: cluster-sample
spec:
    clusterNetwork:
        services:
            cidrBlocks: ["10.96.0.0/16"]
        pods:
            cidrBlocks: ["100.10.0.0/16"]
        serviceDomain: "cluster.local"
    providerSpec:
      value:
        apiVersion: "cceproviderconfig/v1alpha1"
        kind: "CCEClusterProviderConfig"
        clusterName: "cluster-test3"
        clusterCIDR: "172.30.0.0/19"

MachineDeployment Resource Creation Example

apiVersion: "cluster.k8s.io/v1alpha1"
kind: MachineDeployment
metadata:
  name: sample-master
spec:
  replicas: 1
  selector:
    matchLabels:
      foo: bar
  template:
    metadata:
      labels:
        foo: bar
    spec:
      providerSpec:
        value:
          apiVersion: "cceproviderconfig/v1alpha1"
          kind: "CCEMachineProviderConfig"
          clusterName: "cluster-test3"
          role: "master"
          adminPass: "testpw123!"
          imageId: "m-8WV4kRlN" # ubuntu 16.04 lts amd64
          cpuCount: 2
          memoryCapacityInGB: 2
      versions:
        kubelet: 1.12.3
        controlPlane: 1.12.3
  strategy:
    type: "RollingUpdate"
    rollingUpdate:
      maxUnavailable: "30%"
      maxSurge: "30%"
  minReadySeconds: 2
---
apiVersion: "cluster.k8s.io/v1alpha1"
kind: MachineDeployment
metadata:
  name: sample-nodes
spec:
  replicas: 3
  selector:
    matchLabels:
      foo: bar
  template:
    metadata:
      labels:
        foo: bar
    spec:
      providerSpec:
        value:
          apiVersion: "cceproviderconfig/v1alpha1"
          kind: "CCEMachineProviderConfig"
          clusterName: "cluster-test3"
          role: "node"
          adminPass: "testpw123!"
          imageId: "m-8WV4kRlN"
          cpuCount: 2
          memoryCapacityInGB: 2
      versions:
        kubelet: 1.12.3
  strategy:
    type: "RollingUpdate"
    rollingUpdate:
      maxUnavailable: "30%"
      maxSurge: "30%"
  minReadySeconds: 2
You can’t perform that action at this time.