bencord0 / kubernetes-commit-controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kubernetes Commit Controller

Watch a git repository for changes and create a deployment for it

Create a normal Deployment

# deployment.yaml
apiVersion: apps/v1
kind: Deployment

metadata:
  name: hello
  labels:
    app: web
    component: hello

spec:
  selector:
    matchLabels:
      app: web
      component: hello
  template:
    metadata:
      labels:
        app: web
        component: hello
    spec:
      containers:
      - name: hello
        image: nginx
        ports:
        - containerPort: 80
kubectl apply -f deployment.yaml
kubectl port-forward deployment/hello 8000:80 &
curl localhost:8000

Custom Resource Definition

# crd.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition

metadata:
  name: dynamicdeployments.condi.me

spec:
  group: condi.me
  version: v1
  scope: Namespaced
  names:
    plural: dynamicdeployments
    singular: dynamicdeployment
    kind: DynamicDeployment
    shortNames:
    - dd
kubectl create -f crd.yaml

Dynamic Deployments

# dynamicdeployment.yaml
apiVersion: condi.me/v1
kind: DynamicDeployment

metadata:
  name: hello
  labels:
    app: web
    component: hello

spec:
  githubRepository:
    repo: bencord0/hello
    branch: master
  target:
    matchLabels:
      app: web
      component: hello
    container: hello
    containerImageTemplate: bencord0/hello:{commit}

# status:
#   commit: 2e5d3fe1378aac6e3012e61a43d4bdb0376dca97
#   containerImage: bencord0/hello:2e5d3fe1378aac6e3012e61a43d4bdb0376dca97
kubectl create -f dynamicdeployment.yaml

About


Languages

Language:Python 100.0%