leader-election

command module
v0.0.0-...-d67b5c6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2022 License: Apache-2.0 Imports: 23 Imported by: 0

README

leader-election

Kubernetes native leader election pod that can be deployed as a sidecar to add leader-election as a service to any application that requires it, in a language agnostic way.

Deployment as a sidecar container:
Add the following container to your deployment:

- name: leader-elector
  image: quay.io/roikramer120/leader-elector:v0.0.1
  command:
  - leader-elector
  args:
  - --id=$(POD_NAME)
  - --lease-name=$(LEASE_NAME)
  - --namespace=$(NAMESPACE)
  - --lease-duration=$(LEASE_DURATION)
  - --lease-renew-duration=$(LEASE_RENEW_DURATION)
  env:
  - name: NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
  - name: POD_NAME
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
  - name: LEASE_NAME
    value: example
  - name: LEASE_DURATION
    value: 10s
  - name: LEASE_RENEW_DURATION
    value: 5s
  securityContext:
    allowPrivilegeEscalation: false
  livenessProbe:
    httpGet:
      path: /healthz
      port: 4040
    initialDelaySeconds: 15
    periodSeconds: 20
  readinessProbe:
    httpGet:
      path: /readyz
      port: 4040
    initialDelaySeconds: 5
    periodSeconds: 10
  resources:
    limits:
      cpu: 200m
      memory: 200Mi
    requests:
      cpu: 100m
      memory: 100Mi
  imagePullPolicy: IfNotPresent

*You need to make sure that the pod service account is bound to a role with at least the following scopes:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/name: leader-elector
  name: leader-elector
rules:
  - apiGroups:
    - coordination.k8s.io
    resources:
    - leases
    verbs:
    - get
    - list
    - watch
    - create
    - update
    - patch
    - delete
  - apiGroups:
    - ""
    resources:
    - events
    verbs:
    - create
    - patch

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL