コード例 #1
0
def _create_default_deployment():
    labels = {"test": "true"}
    object_meta = ObjectMeta(name=NAME, namespace=NAMESPACE, labels=labels)
    container_port = ContainerPort(name="http5000", containerPort=5000)
    http = HTTPGetAction(path="/", port="http5000")
    liveness = Probe(httpGet=http)
    tcp = TCPSocketAction(port=5000)
    readiness = Probe(tcpSocket=tcp)
    container = Container(name="container",
                          image="dummy_image",
                          ports=[container_port],
                          livenessProbe=liveness,
                          readinessProbe=readiness)
    image_pull_secret = LocalObjectReference(name="image_pull_secret")
    pod_spec = PodSpec(containers=[container],
                       imagePullSecrets=[image_pull_secret],
                       serviceAccountName="default")
    pod_template_spec = PodTemplateSpec(metadata=object_meta, spec=pod_spec)
    deployer_spec = DeploymentSpec(replicas=2,
                                   selector=LabelSelector(matchLabels=labels),
                                   template=pod_template_spec,
                                   revisionHistoryLimit=5)
    deployment = Deployment(metadata=object_meta, spec=deployer_spec)

    return deployment
コード例 #2
0
    def test_lifecycle(self, logger):
        object_meta = ObjectMeta(name=NAME,
                                 namespace=NAMESPACE,
                                 labels={"test": "true"})
        container_port = ContainerPort(name="http5000", containerPort=5000)
        http = HTTPGetAction(path="/", port="http5000")
        liveness = Probe(httpGet=http)
        tcp = TCPSocketAction(port=5000)
        readiness = Probe(tcpSocket=tcp)
        container = Container(name="container",
                              image="dummy_image",
                              ports=[container_port],
                              livenessProbe=liveness,
                              readinessProbe=readiness)
        image_pull_secret = LocalObjectReference(name="image_pull_secret")
        pod_spec = PodSpec(containers=[container],
                           imagePullSecrets=[image_pull_secret],
                           serviceAccountName="default")
        pod_template_spec = PodTemplateSpec(metadata=object_meta,
                                            spec=pod_spec)
        rc_spec = ReplicationControllerSpec(replicas=2,
                                            selector={"test": "true"},
                                            template=pod_template_spec)
        first = ReplicationController(metadata=object_meta, spec=rc_spec)
        logger.debug(pformat(first.as_dict()))
        first.save()

        second = ReplicationController.get(NAME, NAMESPACE)
        assert first.metadata.name == second.metadata.name
        assert first.metadata.namespace == second.metadata.namespace
コード例 #3
0
def _make_probe(check_spec):
    probe = Probe(initialDelaySeconds=check_spec.initial_delay_seconds,
                  timeoutSeconds=check_spec.timeout_seconds,
                  successThreshold=check_spec.success_threshold,
                  failureThreshold=check_spec.failure_threshold,
                  periodSeconds=check_spec.period_seconds)
    if check_spec.http:
        probe.httpGet = HTTPGetAction(
            path=check_spec.http.path,
            port=check_spec.http.port,
            httpHeaders=[
                HTTPHeader(name=name, value=value)
                for name, value in check_spec.http.http_headers.items()
            ])
    elif check_spec.tcp:
        probe.tcpSocket = TCPSocketAction(port=check_spec.tcp.port)
    elif check_spec.execute:
        probe._exec = ExecAction(
            command=shlex.split(check_spec.execute.command))
    else:
        raise RuntimeError(
            "AppSpec must have exactly one health check, none was defined.")

    return probe