apiVersion: v1
kind: ConfigMap
metadata:
  name: buildbot-master.cfg
data:
  master.cfg: |-
    # -*- python -*-
    # ex: set filetype=python:

    from buildbot.plugins import *
    from buildbot.worker import kubernetes

    # This is a sample buildmaster config file. It must be installed as
    # 'master.cfg' in your buildmaster's base directory.

    # This is the dictionary that the buildmaster pays attention to. We also use
    # a shorter alias to save typing.
    c = BuildmasterConfig = {}

    ####### WORKERS

    # The 'workers' list defines the set of recognized workers. Each element is
    # a Worker object, specifying a unique worker name and password.  The same
    # worker name and password must be configured on the worker.
    c['workers'] = [kubernetes.KubeLatentWorker(
        'example-worker',
        'pass',
        namespace='buildbot',
        kubeConfig={'verify_ssl': False})]

    # 'protocols' contains information about protocols which master will use for
    # communicating with workers. You must define at least 'port' option that workers
    # could connect to your master with this protocol.
    # 'port' must match the value configured into the workers (with their
    # --master option)
    c['protocols'] = {'pb': {'port': 9989}}

    ####### CHANGESOURCES

    # the 'change_source' setting tells the buildmaster how it should find out
    # about source code changes.  Here we point to the buildbot clone of pyflakes.

    c['change_source'] = []
    c['change_source'].append(changes.GitPoller(
            'git://github.com/buildbot/pyflakes.git',
            workdir='gitpoller-workdir', branch='master',
            pollinterval=300))

    ####### SCHEDULERS

    # Configure the Schedulers, which decide how to react to incoming changes.  In this
    # case, just kick off a 'runtests' build

    c['schedulers'] = []
    c['schedulers'].append(schedulers.SingleBranchScheduler(
                                name="all",
                                change_filter=util.ChangeFilter(branch='master'),
                                treeStableTimer=None,
                                builderNames=["runtests"]))
    c['schedulers'].append(schedulers.ForceScheduler(
                                name="force",
                                builderNames=["runtests"]))

    ####### BUILDERS

    # The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
    # what steps, and which workers can execute them.  Note that any particular build will
    # only take place on one worker.

    factory = util.BuildFactory()
    # check out the source
    factory.addStep(steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental'))
    # run the tests (note that this will require that 'trial' is installed)
    factory.addStep(steps.ShellCommand(command=["trial", "pyflakes"]))

    c['builders'] = []
    c['builders'].append(
        util.BuilderConfig(name="runtests",
          workernames=["example-worker"],
          factory=factory))

    ####### BUILDBOT SERVICES

    # 'services' is a list of BuildbotService items like reporter targets. The
    # status of each build will be pushed to these targets. buildbot/reporters/*.py
    # has a variety to choose from, like IRC bots.

    c['services'] = []

    ####### PROJECT IDENTITY

    # the 'title' string will appear at the top of this buildbot installation's
    # home pages (linked to the 'titleURL').

    c['title'] = "Pyflakes"
    c['titleURL'] = "https://launchpad.net/pyflakes"

    # the 'buildbotURL' string should point to the location where the buildbot's
    # internal web server is visible. This typically uses the port number set in
    # the 'www' entry below, but with an externally-visible host name which the
    # buildbot cannot figure out without some help.

    #c['buildbotURL'] = "http://192.168.42.49:30010/"
    c['buildbotURL'] = "http://pomme.ligi.fr:30810/"

    # minimalistic config to activate new web UI
    c['www'] = dict(port=8010,
                    plugins=dict(waterfall_view={}, console_view={}))

    ####### DB URL

    c['db'] = {
        # This specifies what database buildbot uses to store its state.  You can leave
        # this at its default for all but the largest installations.
        'db_url' : "sqlite:///state.sqlite",
    }
