Add ccp-component label for pods and jobs

It's needed for filtering objects by repo

Change-Id: Iababbf3c11f009055eebfed5479738b5ce432bb9
This commit is contained in:
Sergey Reshetnyak
2016-10-06 14:23:12 +03:00
parent 6704f826fb
commit 91e79c610f
3 changed files with 30 additions and 19 deletions

View File

@@ -54,6 +54,10 @@ def get_deploy_components_info(rendering_context=None):
'service')
if not os.path.isdir(service_dir):
continue
component_name = component
REPO_NAME_PREFIX = "fuel-ccp-"
if component_name.startswith(REPO_NAME_PREFIX):
component_name = component_name[len(REPO_NAME_PREFIX):]
for service_file in os.listdir(service_dir):
if service_file.endswith('.yaml'):
LOG.debug("Rendering service definition: %s", service_file)
@@ -65,6 +69,7 @@ def get_deploy_components_info(rendering_context=None):
service_definition = yaml.load(content)
service_name = service_definition['service']['name']
components_map[service_name] = {
'component_name': component_name,
'service_dir': service_dir,
'service_content': service_definition
}

View File

@@ -58,7 +58,10 @@ def _get_service_files_hash(service_dir, files, configs):
return hashlib.sha1(dump).hexdigest()
def parse_role(service_dir, role, topology, configmaps):
def parse_role(component, topology, configmaps):
service_dir = component["service"]
role = component["service_content"]
component_name = component["component_name"]
service = role["service"]
service_name = service["name"]
@@ -87,8 +90,8 @@ def parse_role(service_dir, role, topology, configmaps):
daemon_cmd = cont["daemon"]
daemon_cmd["name"] = cont["name"]
_create_pre_jobs(service, cont)
_create_post_jobs(service, cont)
_create_pre_jobs(service, cont, component_name)
_create_post_jobs(service, cont, component_name)
cont['cm_version'] = cm_version
cont_spec = templates.serialize_daemon_pod_spec(service)
@@ -105,11 +108,12 @@ def parse_role(service_dir, role, topology, configmaps):
"implemented using Kubernetes DaemonSet")
obj = templates.serialize_daemonset(service_name, cont_spec,
affinity)
affinity, component_name)
else:
replicas = replicas or 1
obj = templates.serialize_deployment(service_name, cont_spec,
affinity, replicas)
affinity, replicas,
component_name)
kubernetes.process_object(obj)
_create_service(service)
@@ -208,22 +212,22 @@ def _is_single_job(job):
return job.get("type", "local") == "single"
def _create_pre_jobs(service, container):
def _create_pre_jobs(service, container, component_name):
for job in container.get("pre", ()):
if _is_single_job(job):
_create_job(service, container, job)
_create_job(service, container, job, component_name)
def _create_post_jobs(service, container):
def _create_post_jobs(service, container, component_name):
for job in container.get("post", ()):
if _is_single_job(job):
_create_job(service, container, job)
_create_job(service, container, job, component_name)
def _create_job(service, container, job):
def _create_job(service, container, job, component_name):
cont_spec = templates.serialize_job_container_spec(container, job)
pod_spec = templates.serialize_job_pod_spec(service, job, cont_spec)
job_spec = templates.serialize_job(job["name"], pod_spec)
job_spec = templates.serialize_job(job["name"], pod_spec, component_name)
kubernetes.process_object(job_spec)
@@ -410,8 +414,7 @@ def deploy_components(components_map, components):
configmaps = (start_script_cm,)
for component in components:
parse_role(components_map[component]['service_dir'],
components_map[component]['service_content'],
parse_role(components_map[component],
topology=topology,
configmaps=configmaps)

View File

@@ -259,14 +259,15 @@ def serialize_volumes(service):
return vol_spec
def serialize_job(name, spec):
def serialize_job(name, spec, component_name):
return {
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": name,
"labels": {
"ccp": "true"
"ccp": "true",
"ccp-component": component_name
}
},
"spec": {
@@ -275,7 +276,7 @@ def serialize_job(name, spec):
}
def serialize_deployment(name, spec, affinity, replicas):
def serialize_deployment(name, spec, affinity, replicas, component_name):
return {
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
@@ -294,8 +295,9 @@ def serialize_deployment(name, spec, affinity, replicas):
"metadata": {
"annotations": affinity,
"labels": {
"app": name,
"ccp": "true",
"app": name
"ccp-component": component_name
}
},
"spec": spec
@@ -304,7 +306,7 @@ def serialize_deployment(name, spec, affinity, replicas):
}
def serialize_daemonset(name, spec, affinity):
def serialize_daemonset(name, spec, affinity, component_name):
return {
"apiVersion": "extensions/v1beta1",
"kind": "DaemonSet",
@@ -316,8 +318,9 @@ def serialize_daemonset(name, spec, affinity):
"metadata": {
"annotations": affinity,
"labels": {
"app": name,
"ccp": "true",
"app": name
"ccp-component": component_name
}
},
"spec": spec