cloudscale-slb-controller
A kubernetes controller that watches for services of type LoadBalancer and creates a floating IP
on cloudscale.ch for those services. The floating IP will be attached to the server where one of
the services pods in state Running is located.
It is safe to run multiple replicas of this controller.
supported service annotations
The following annotations on services of type LoadBalancer are supported:
linkyard.ch/slb-controller-id: this service must be processed by a controller with the given idlinkyard.ch/existing-floating-ip: use the already existing floating IP on cloudscale.ch for this service; note that no additional checks (e.g. port collisions) are performed
configuration
The following configuration flags are supported:
-cloudscale-token,CLOUDSCALE_TOKEN, no default, required: cloudscale.ch API token with write access-ip-limit,IP_LIMIT, default5: maximum number of floating ips that are allowed to exist on the cloudscale.ch account; this is used as an additional guard in case this controller is out of control and would create an infinite amount of floating ips-controller-id,CONTROLLER_ID, no default: if set, the controller will only process services with alinkyard.ch/slb-controller-idannotation set to this value-leader-election-configmap,LEADER_ELECTION_CONFIGMAP, no default: name of theConfigMapto use for leader election-leader-election-namespaceLEADER_ELECTION_NAMESPACE, no default: name of the namespace where theConfigMapfor leader election is located at-leader-election-node,LEADER_ELECTION_NODE, no default: name of the pod-leader-election-ttl,LEADER_ELECTION_TTL, default10s: TTL for leader election, e.g.10s; valid time units arens,us,ms,s,mandh.-log-level,LOG_LEVEL, defaultDebug: log level to set; possible values are:Panic,Fatal,Error,Warn,Info,Debug,Trace-kubeconfig,KUBECONFIG, no default, not required: path to a kubernetes kubconfig file; this is not required when running inside a kubernetes cluster-fake-cloudscale-client,FAKE_CLOUDSCALE_CLIENT: set totrueto use a fake cloudscale.ch API client-chaos-chance,CHAOS_CHANCE, default0: chance of a call to one of the fake components failing; range[0.0,1,0)

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
