Concord v1.0Documentation
Raw .md

Go SDK Reference

go get github.com/podomy/concord/sdk

sdk.Dial() connects to ~/.config/concord/concord.sock.

client, err := sdk.Dial()
if err != nil {
    log.Fatalf("connect to concord daemon: %v", err)
}
defer client.Close()

Example

spec, err := sdk.NewWorkload().
    Image("docker.io/library/nginx:alpine").
    Port(8080, 80).
    Env("ENV", "production").
    Restart(sdk.RestartAlways).
    CPUShares(1024).
    MemoryMB(512).
    HealthCheck("/healthz", sdk.HealthActionRestart).
    Build()
if err != nil {
    log.Fatalf("invalid spec: %v", err)
}

id, err := client.Submit(context.Background(), spec)
if err != nil {
    log.Fatalf("submit workload: %v", err)
}
fmt.Printf("Workload submitted: %s\n", id)

API

Method Description
client.Submit(ctx, w) Submit a workload, returns its UUID
client.Stop(ctx, id) Stop and remove a workload
client.Get(ctx, id) Fetch a workload spec by UUID
client.List(ctx) List active workloads
client.Nodes(ctx) List cluster nodes

Builder methods: Image, Command, Env, Envs, Port, Resources, MemoryMB, CPUShares, Restart, HealthCheck, StopTimeout, StopTimeoutSeconds, Build, MustBuild.