digraph jenkins {
        label="Jenkins CI architecture, torproject.org, Februrary 2021"

        subgraph "clusterhosts" {
                label="hosts"
                labelloc=bottom

                static [ label="static site mirror system"]
                git [ shape=record label="<git> git\nserver | <gitolite> gitolite | <http> https:// " ]
                puppet
                build [label="build-$ARCH-$NN" ]
                deb [label="Debian package\narchive"]
                git:gitolite -> jenkins [label="HTTP trigger"]
                jenkins -> git:http [label="pulls config"]
                build -> jenkins [label="pulls\njobs"]
                build -> git:http [headlabel="pulls\nrepos"]
                build -> static [taillabel="pushes\nartefacts"]
                jenkins -> LDAP [label=auth]
                build -> IRC [label="IRC notification\n(over email)"]
                build -> deb [label="pushes packages"]
        }
        subgraph clusterusers {
                label=users
                labelloc=bottom
                TPA
                webdevs
                public
        }
        TPA -> puppet -> { static, build, git, jenkins }
        TPA -> git:gitolite
        webdevs -> git:gitolite
        public -> static
}
