Skip to content

Commit 5f2e4a3

Browse files
authored
feat(sdk): Add alpha env flag to opt out artifact tracking annotations (kubeflow#1032)
* add alpha env flag to opt out artifact tracking annotations * reduce annotations further
1 parent 9df5873 commit 5f2e4a3

File tree

4 files changed

+28
-16
lines changed

4 files changed

+28
-16
lines changed

sdk/python/kfp_tekton/compiler/_data_passing_rewriter.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -550,11 +550,12 @@ def big_data_passing_tasks(prname: str, task: dict, pipelinerun_template: dict,
550550
appended_taskrun_name = True
551551
task['taskSpec'] = replace_big_data_placeholder(
552552
task.get("taskSpec", {}), placeholder, workspaces_parameter)
553-
artifact_items = pipelinerun_template['metadata']['annotations']['tekton.dev/artifact_items']
554-
artifact_items[task['name']] = replace_big_data_placeholder(
555-
artifact_items[task['name']], placeholder, workspaces_parameter)
556-
pipelinerun_template['metadata']['annotations']['tekton.dev/artifact_items'] = \
557-
artifact_items
553+
artifact_items = pipelinerun_template['metadata']['annotations'].get('tekton.dev/artifact_items', '{}')
554+
if artifact_items != '{}':
555+
artifact_items[task['name']] = replace_big_data_placeholder(
556+
artifact_items[task['name']], placeholder, workspaces_parameter)
557+
pipelinerun_template['metadata']['annotations']['tekton.dev/artifact_items'] = \
558+
artifact_items
558559
if appended_taskrun_path_step:
559560
task['taskSpec']['steps'].append(appended_taskrun_path_step)
560561
_append_original_pr_name_env(task)
@@ -651,7 +652,7 @@ def append_taskrun_params(task_name_append: str, task_path_name: str):
651652
task = input_artifacts_tasks_pr_params(task, task_artifact)
652653

653654
# If a task produces a result and artifact, add a step to copy artifact to results.
654-
artifact_items = pipelinerun_template['metadata']['annotations']['tekton.dev/artifact_items']
655+
artifact_items = pipelinerun_template['metadata']['annotations'].get('tekton.dev/artifact_items', '{}')
655656
add_copy_results_artifacts_step = False
656657
if task.get("taskSpec", {}):
657658
if task_spec.get('results', []):
@@ -797,16 +798,18 @@ def clean_up_empty_workflow_structures(workflow: list):
797798

798799

799800
def load_annotations(template: dict):
800-
artifact_items = json.loads(
801-
str(template['metadata']['annotations']['tekton.dev/artifact_items']))
802-
template['metadata']['annotations']['tekton.dev/artifact_items'] = \
803-
artifact_items
801+
if env.get('DISABLE_ARTIFACT_TRACKING', 'false').lower() != 'true':
802+
artifact_items = json.loads(
803+
str(template['metadata']['annotations'].get('tekton.dev/artifact_items', '{}')))
804+
template['metadata']['annotations']['tekton.dev/artifact_items'] = \
805+
artifact_items
804806
return template
805807

806808

807809
def jsonify_annotations(template: dict):
808-
template['metadata']['annotations']['tekton.dev/artifact_items'] = \
809-
json.dumps(template['metadata']['annotations']['tekton.dev/artifact_items'])
810+
if env.get('DISABLE_ARTIFACT_TRACKING', 'false').lower() != 'true':
811+
template['metadata']['annotations']['tekton.dev/artifact_items'] = \
812+
json.dumps(template['metadata']['annotations'].get('tekton.dev/artifact_items', '{}'))
810813
return template
811814

812815

sdk/python/kfp_tekton/compiler/_op_to_template.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
from collections import OrderedDict
2222
from typing import List, Text, Dict, Any
23+
from os import environ as env
2324

2425
from kfp import dsl
2526
from kfp_tekton.compiler._k8s_helper import convert_k8s_obj_to_json, sanitize_k8s_name
@@ -564,6 +565,8 @@ def _op_to_template(op: BaseOp,
564565
}
565566
template.setdefault('metadata', {}).setdefault('annotations', {})['pipelines.kubeflow.org/component_spec_digest'] = \
566567
json.dumps(digested_component_spec_dict, sort_keys=True)
568+
if env.get('DISABLE_ARTIFACT_TRACKING', 'false').lower() == 'true':
569+
template['metadata']['annotations'].pop('pipelines.kubeflow.org/component_spec_digest', None)
567570

568571
if isinstance(op, dsl.ContainerOp) and op.execution_options:
569572
if op.execution_options.caching_strategy.max_cache_staleness:

sdk/python/kfp_tekton/compiler/compiler.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,6 +1330,11 @@ def get_when_task(input_task_when, depended_conditions):
13301330
}
13311331
}
13321332

1333+
if env.get('DISABLE_ARTIFACT_TRACKING', 'false').lower() == 'true':
1334+
pipeline_run['metadata']['annotations'].pop('tekton.dev/output_artifacts', None)
1335+
pipeline_run['metadata']['annotations'].pop('tekton.dev/input_artifacts', None)
1336+
pipeline_run['metadata']['annotations'].pop('tekton.dev/artifact_items', None)
1337+
13331338
if self.pipeline_labels:
13341339
pipeline_run['metadata']['labels'] = pipeline_run['metadata'].setdefault('labels', {})
13351340
pipeline_run['metadata']['labels'].update(self.pipeline_labels)

sdk/python/tests/compiler/compiler_tests.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -939,10 +939,11 @@ def test_artifacts_of_ops_with_long_names(self):
939939
obj = yaml.safe_load(f)
940940
text = yaml.safe_dump(obj)
941941
self.assertNotRegex(text, "stepTemplate")
942-
artifact_items = obj['metadata']['annotations']['tekton.dev/artifact_items']
943-
items_for_op0 = list(json.loads(artifact_items).values())[0]
944-
names_of_items_for_op0 = set([item[0] for item in items_for_op0])
945-
self.assertSetEqual(names_of_items_for_op0, {"incr_i", "sq_i"})
942+
artifact_items = obj['metadata']['annotations'].get('tekton.dev/artifact_items', {})
943+
if artifact_items:
944+
items_for_op0 = list(json.loads(artifact_items).values())[0]
945+
names_of_items_for_op0 = set([item[0] for item in items_for_op0])
946+
self.assertSetEqual(names_of_items_for_op0, {"incr_i", "sq_i"})
946947
finally:
947948
shutil.rmtree(temp_dir)
948949

0 commit comments

Comments
 (0)