def METHOD_NAME(self, application):
    LOG.debug("Deploying %s", application.spec.application)
    try:
        deployment_id = application.metadata.labels["fiaas/deployment_id"]
        set_extras(
            app_name=application.spec.application,
            namespace=application.metadata.namespace,
            deployment_id=deployment_id,
        )
    except (AttributeError, KeyError, TypeError):
        raise ValueError(
            "The Application {} is missing the 'fiaas/deployment_id' label".format(application.spec.application)
        )
    lifecycle_subject = self._lifecycle.initiate(
        uid=application.metadata.uid,
        app_name=application.spec.application,
        namespace=application.metadata.namespace,
        deployment_id=deployment_id,
        repository=None,
        labels=application.spec.additional_labels.status,
        annotations=application.spec.additional_annotations.status,
    )
    try:
        app_spec = self._spec_factory(
            application.metadata.uid,
            name=application.spec.application,
            image=application.spec.image,
            app_config=application.spec.config,
            teams=[],
            tags=[],
            deployment_id=deployment_id,
            namespace=application.metadata.namespace,
            additional_labels=application.spec.additional_labels,
            additional_annotations=application.spec.additional_annotations,
        )
        self._store_status(None, DEPLOY_SCHEDULED, lifecycle_subject)
        self._deploy_queue.put(DeployerEvent("UPDATE", app_spec, lifecycle_subject))
        LOG.debug(
            "Queued deployment for %s in namespace %s", application.spec.application, application.metadata.namespace
        )
    except (YAMLError, InvalidConfiguration):
        self._lifecycle.failed(lifecycle_subject)
        raise