def createKube(self):
        if "TEST_KUBERNETES" not in os.environ:
            raise SkipTest(
                "kubernetes integration tests only run when environment "
                "variable TEST_KUBERNETES is set")

        self.kube = kubeclientservice.KubeClientService(
            kubeclientservice.KubeCtlProxyConfigLoader())
 def test_basic(self):
     self.patchProxyCmd(KUBE_CTL_PROXY_FAKE)
     self.config = config = kubeclientservice.KubeCtlProxyConfigLoader()
     yield config.startService()
     self.assertEqual(config.getConfig(), {
         'master_url': 'http://localhost:8001',
         'namespace': 'default'
     })
 def test_config_args(self):
     self.patchProxyCmd(KUBE_CTL_PROXY_FAKE)
     self.config = config = kubeclientservice.KubeCtlProxyConfigLoader(
         proxy_port=8002, namespace="system")
     yield config.startService()
     self.assertEqual(config.kube_proxy_output,
                      b'Starting to serve on 127.0.0.1:8002')
     self.assertEqual(config.getConfig(), {
         'master_url': 'http://localhost:8002',
         'namespace': 'system'
     })
     yield config.stopService()
示例#4
0
def masterConfig(num_concurrent, extra_steps=None):
    if extra_steps is None:
        extra_steps = []
    c = {}

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]
    triggereables = []
    for i in range(num_concurrent):
        c['schedulers'].append(
            schedulers.Triggerable(
                name="trigsched" + str(i), builderNames=["build"]))
        triggereables.append("trigsched" + str(i))

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    f.addStep(
        steps.Trigger(
            schedulerNames=triggereables,
            waitForFinish=True,
            updateSourceStamp=True))
    f.addStep(steps.ShellCommand(command='echo world'))
    f2 = BuildFactory()
    f2.addStep(steps.ShellCommand(command='echo ola'))
    for step in extra_steps:
        f2.addStep(step)
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["kubernetes0"], factory=f),
        BuilderConfig(
            name="build",
            workernames=["kubernetes" + str(i) for i in range(num_concurrent)],
            factory=f2)
    ]
    masterFQDN = os.environ.get('masterFQDN')
    c['workers'] = [
        kubernetes.KubeLatentWorker(
            'kubernetes' + str(i),
            'buildbot/buildbot-worker',
            kube_config=kubeclientservice.KubeCtlProxyConfigLoader(
                namespace=os.getenv("KUBE_NAMESPACE", "default")),
            masterFQDN=masterFQDN) for i in range(num_concurrent)
    ]
    # un comment for debugging what happens if things looks locked.
    # c['www'] = {'port': 8080}
    c['protocols'] = {"pb": {"port": "tcp:9989"}}

    return c
 def test_config_with_error(self):
     self.patchProxyCmd(KUBE_CTL_PROXY_FAKE_ERROR)
     self.config = config = kubeclientservice.KubeCtlProxyConfigLoader()
     with self.assertRaises(RuntimeError):
         yield config.startService()