Categorygithub.com/nakiner/lector
repositorypackage
0.0.1
Repository: https://github.com/nakiner/lector.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

usage

Package provides different methods, such as electing master node between instances, instance discovery for searching instances and jobs in cluster, and also controller services with abilities to start independent tasks in cluster via batchv1/job api.

installation

go get -u github.com/nakiner/lector

example

svc, err := example.NewService()
if err != nil {
	level.Error(logger).Log("err", err, "msg", "kube function unavailable")
} else {
    go svc.ListenElection(ctx)
}

Customize callbacks inside example on your needs

environment

to use in production packages required some variables, such as:

SERVICE_NAME_SD_K8S_ENABLED: true
SERVICE_NAME_SD_K8S_NAMESPACE: metadata.namespace
SERVICE_NAME_SD_K8S_POD_NAME: metadata.name

Helm charts should contain ServiceAccount and roles should be updated according to privileges, used in package, ex:

{{- if .Values.rbac.enabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: {{ template "builder.fullname" $ }}
  labels:
{{ include "builder.labels.standard" . | indent 4 }}
rules:
  - apiGroups: ["","batch","coordination.k8s.io"]
    resources: ["pods","jobs","leases"]
    verbs: ["get","list","watch"]
{{- end }}