Proctor is a developer friendly automation orchestrator. It helps everyone use automation and contribute to it
make build
proctord
is the heart of the automation orchestratormake db.setup
from the repo directorymake start-server
curl {host-address:port}/ping
for health-check of service.env.sample
into .env
fileproctord
configuration here.env
file.env
file by running source .env
proctor server
gets configuration from environment variables.PROCTOR_APP_PORT
is port on which service will runPROCTOR_LOG_LEVEL
defines log levels of service. Available options are: debug
,info
,warn
,error
,fatal
,panic
PROCTOR_REDIS_ADDRESS
is hostname and port of redis store for jobs configuration and metadataPROCTOR_REDIS_MAX_ACTIVE_CONNECTIONS
defines maximum active connections to redis. Maximum idle connections is half of this configPROCTOR_LOGS_STREAM_READ_BUFFER_SIZE
and PROCTOR_LOGS_STREAM_WRITE_BUFFER_SIZE
is the buffer size for websocket connection while streaming logsPROCTOR_KUBE_CONFIG
needs to be set only if service is running outside a kubernetes cluster
.kube/config
file in home directoryPROCTOR_KUBE_JOB_ACTIVE_DEADLINE_SECONDS
PROCTOR_KUBE_JOB_RETRIES
is the number of retries for a kubernetes job (on failure)PROCTOR_DEFAULT_NAMESPACE
is the namespace under which jobs will be run in kubernetes cluster. By default, K8s has namespace "default". If you set another value, please create namespace in K8s before deploying proctord
PROCTOR_KUBE_CLUSTER_HOST_NAME
is address/ip address to api-server of kube cluster. It is used for fetching logs of a pod using httpsPROCTOR_KUBE_CA_CERT_ENCODED
is the CA cert file encoded in base64. This is used for establishing authority while talking to kubernetes api-server on a public https callPROCTOR_KUBE_BASIC_AUTH_ENCODED
is the base64 encoded authentication of kubernetes. Enocde username:password
to base64 and set this config.PROCTOR_KUBE_POD_LIST_WAIT_TIME
is the time to wait until jobs and pods are in active/successful/failed statePROCTOR_POSTGRES_USER
, PROCTOR_POSTGRES_PASSWORD
, PROCTOR_POSTGRES_HOST
and PROCTOR_POSTGRES_PORT
is the username and password to the postgres database you wish to connect toPROCTOR_POSTGRES_DATABASE
to proctord_development
for development purposePROCTOR_POSTGRES_DATABASE
PROCTOR_POSTGRES_MAX_CONNECTIONS
defines maximum open and idle connections to postgresPROCTOR_POSTGRES_CONNECTIONS_MAX_LIFETIME
is the lifetime of a connection in minutesPROCTOR_NEW_RELIC_APP_NAME
and PROCTOR_NEW_RELIC_LICENCE_KEY
are used to send profiling details to newrelic. Provide dummy values if you don't want profilingPROCTOR_MIN_CLIENT_VERSION
is minimum client version allowed to communicate with proctordPROCTOR_SCHEDULED_JOBS_FETCH_INTERVAL_IN_MINS
is the interval at which the scheduler fetches updated jobs from databasePROCTOR_MAIL_USERNAME
, PROCTOR_MAIL_PASSWORD
, PROCTOR_MAIL_SERVER_HOST
, PROCTOR_MAIL_SERVER_PORT
are the creds required to send notification to users on scheduled jobs executionPROCTOR_JOB_POD_ANNOTATIONS
is used to set any kubernetes pod specific annotations.PROCTOR_SENTRY_DSN
is used to set sentry DSN.