/rigging

Kubernetes resources change management

Primary LanguageGoOtherNOASSERTION

Rig

The Rig tool adds changeset semantics to Kubernetes operations. For example:

# upsert a daemon set (changeset is created automatically)
rig upsert -c change1 -f daemonset.yaml
# delete a service
rig delete -c change1 svc/service1
# update config map
rig delete -c change1 configmaps/cf1
# check status
rig status -c change1
# revert everything
rig revert -c change1
# or freeze changeset, so it can no longer be updated
rig freeze -c change1

Usage

You can view changesets to see what happened:

View all changesets

rig get

Get detailed operations log for a changeset

rig get change1
rig get change1 -o yaml

Delete a changeset

rig cs delete change1

Environment variables can be used to bind rig to particular changeset:

export RIG_CHANGESET=cs1
rig upsert -f daemonset.yaml

Supported Resources

The following resources are supported:

  • ConfigMap
  • DaemonSet
  • ReplicationController
  • Service
  • Secret
  • Deployment

Rolling Updates

Only Deployment updates are rolling, updating of daemon sets or replication controllers simply deletes all the pods

Status checks

As a precondition to declaring Deployment, DaemonSet or ReplicatonController as ready, rig requires all pods must be in Running state.

Contributing

Rig is developed by Teleport. If you'd like to contribute to Rig, check out our contributing guidelines and Code of Conduct.