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
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
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