Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
2b238c7
generic cal module with R arguments in configmap - interim working st…
covesturtevant Jun 11, 2026
a3b6394
add more parameters
covesturtevant Jun 11, 2026
6430b93
interim commit
covesturtevant Jun 11, 2026
cc8d5dc
Add l0 data load from manifest
covesturtevant Jun 11, 2026
e9f44e0
Accept json-formatted manifest string in place of a manifest file
covesturtevant Jun 11, 2026
a9103ef
adjust module name
covesturtevant Jun 11, 2026
cb2ddea
Update python to 3.13
covesturtevant Jun 11, 2026
c7a5daa
enable call to python3
covesturtevant Jun 11, 2026
6bd8630
Add logging
covesturtevant Jun 11, 2026
ba006e2
Add error if no files found for a manifest path
covesturtevant Jun 11, 2026
fb7a80e
make it a warning when no files found for a manifest path
covesturtevant Jun 11, 2026
6ce6776
working generic cal module and config
covesturtevant Jun 12, 2026
1902fa3
configmaps for generic cal conv template
covesturtevant Jun 15, 2026
f042b26
Merge branch 'master' into argo.design
covesturtevant Jun 25, 2026
f4e74e1
organize argo directory structure.
covesturtevant Jun 25, 2026
910ed4e
add design 2 - direct read of normalized configmap, kustomization
covesturtevant Jun 25, 2026
04a46ec
create verbatim env vars from configmap
covesturtevant Jun 25, 2026
2cf90df
move to modules
covesturtevant Jun 25, 2026
3534f47
doc update
covesturtevant Jun 25, 2026
0eefc83
Merge branch 'master' into argo.design
covesturtevant Jun 25, 2026
2a0e197
flesh out for github workflow builds
covesturtevant Jun 25, 2026
9fbe240
use actual image for config env creator
covesturtevant Jun 25, 2026
9ff031f
default to no excluded sections
covesturtevant Jun 25, 2026
658a13b
clone schema repos
covesturtevant Jun 25, 2026
9a11bed
fix secret
covesturtevant Jun 25, 2026
1537a94
doc update
covesturtevant Jun 25, 2026
859c4e2
make env vars more specific
covesturtevant Jun 26, 2026
80e97fc
reference more specific env vars
covesturtevant Jun 26, 2026
37b2af5
Merge branch 'master' into argo.design
covesturtevant Jun 26, 2026
5ff6540
image update
covesturtevant Jun 26, 2026
97fc03e
new images
covesturtevant Jun 26, 2026
da6b984
Merge branch 'master' into argo.design
covesturtevant Jul 2, 2026
afd557f
Create external config-env yaml for testing
covesturtevant Jul 2, 2026
23c4b7f
remove dependence on pfs and consolidate shared volumes
covesturtevant Jul 6, 2026
399a410
Merge branch 'master' into argo.design
covesturtevant Jul 8, 2026
fe3949a
consolidate design docs
covesturtevant Jul 8, 2026
ed774da
remove obsolete design
covesturtevant Jul 8, 2026
3112cfe
generic and platform-independent processing instruction design
covesturtevant Jul 8, 2026
42b555e
Merge branch 'master' into argo.design
covesturtevant Jul 8, 2026
a0b5cd7
Merge branch 'master' into argo.design
covesturtevant Jul 8, 2026
2ca49e5
Be explicit about volume dedicated to environment variables
covesturtevant Jul 8, 2026
53792f6
adjust specification of R arguments to avoid error with pipes
covesturtevant Jul 8, 2026
bbe0f69
repeat for a different source type
covesturtevant Jul 8, 2026
c04be06
rename
covesturtevant Jul 8, 2026
6a79292
Adding location asset assignment prototype.
rmarkel-neon Jul 13, 2026
f6ca780
Removed unused template.
rmarkel-neon Jul 13, 2026
6e21abd
Renamed directory.
rmarkel-neon Jul 13, 2026
9531c79
Removed testing configmap.
rmarkel-neon Jul 13, 2026
e21fdec
Added calibration assignment prototype.
rmarkel-neon Jul 16, 2026
0dbff47
pull env vars directly from configmap. Add script input via yaml-in-c…
covesturtevant Jul 16, 2026
a9046e9
Merge branch 'argo.design' of https://github.com/NEONScience/NEON-IS-…
covesturtevant Jul 16, 2026
e8cd03f
Update
rmarkel-neon Jul 16, 2026
f04ec6c
Removed commented code.
rmarkel-neon Jul 16, 2026
a600854
load processing script directly from configmap
covesturtevant Jul 16, 2026
6871baf
Merge branch 'argo.design' of https://github.com/NEONScience/NEON-IS-…
covesturtevant Jul 16, 2026
f7b8034
Refactored assignment workflows to use template.
rmarkel-neon Jul 21, 2026
515166c
Removed hard-coded year filename.
rmarkel-neon Jul 21, 2026
1dd6074
Minor cleanup.
rmarkel-neon Jul 21, 2026
0d50659
pull in resource requests via configmap
covesturtevant Jul 22, 2026
3e694f8
remove old design
covesturtevant Jul 22, 2026
bc628e6
Merge branch 'argo.design' of https://github.com/NEONScience/NEON-IS-…
covesturtevant Jul 22, 2026
2997119
adjust l0 gcs loader for adjusted manifest format
covesturtevant Jul 22, 2026
db819aa
Add parser to turn key-based manifest into paths
covesturtevant Jul 22, 2026
550894e
cut off any path indices deeper than available manifest components
covesturtevant Jul 22, 2026
0842388
Execute load-data instructions from script embedded in configmap
covesturtevant Jul 22, 2026
10878a5
fix a few things and add unit tests for manifest_paths_builder
covesturtevant Jul 22, 2026
b61b607
abstract out the data upload instructions
covesturtevant Jul 22, 2026
d80d035
specify image in configmaps
covesturtevant Jul 22, 2026
6c4cbcd
doc update
covesturtevant Jul 22, 2026
77d0f0b
remove unused volume mount
covesturtevant Jul 22, 2026
7766b2a
reorganize to allow for more workflow templates in the same structure
covesturtevant Jul 22, 2026
68c3375
update architecture doc for repo structure change
covesturtevant Jul 22, 2026
c9fe1a7
migrate to unified "patches" field
covesturtevant Jul 27, 2026
af6a7c9
rename
covesturtevant Jul 27, 2026
735611d
accept date range for cal assignment
covesturtevant Jul 28, 2026
9034927
add calibration assignmentto combined module
covesturtevant Jul 28, 2026
a79ab57
bug fix
covesturtevant Jul 28, 2026
599f40d
add jq
covesturtevant Jul 28, 2026
24932c5
bug fix
covesturtevant Jul 28, 2026
4e217ad
allow a subset of the PATH_ env vars
covesturtevant Jul 28, 2026
a02b73c
Change DateStart to DateBgn
covesturtevant Jul 28, 2026
54563d4
bug fix
covesturtevant Jul 28, 2026
3e7b7b7
bug fix
covesturtevant Jul 28, 2026
9cf8a5b
change name of env vars for better clarity. Add tests for partial env…
covesturtevant Jul 29, 2026
34b7411
clean up workflows for recent changes to calibration_assignment
covesturtevant Jul 29, 2026
e4581e2
bug fix
covesturtevant Jul 29, 2026
4d9b5f1
remove unused module
covesturtevant Jul 29, 2026
4f4ffd6
accept date range for assignment instead of FileYear
covesturtevant Jul 29, 2026
69bab6b
add assignment modules to the relevant comined modules
covesturtevant Jul 29, 2026
435f37f
Merge branch 'master' into argo.design
covesturtevant Jul 29, 2026
4720469
refine edits to inclusion of assignment modules in relevant combined …
covesturtevant Jul 29, 2026
9e6718f
refine edits to inclusion of assignment modules in combined module im…
covesturtevant Jul 29, 2026
d0de7a5
Merge branch 'argo.design' of https://github.com/NEONScience/NEON-IS-…
covesturtevant Jul 29, 2026
74302fd
reorganize dockerfile
covesturtevant Jul 29, 2026
7f3e8dc
Remove jq from pip installation in Dockerfile
covesturtevant Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
271 changes: 271 additions & 0 deletions argo/assignment_workflows/assignment_template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,271 @@
---
# Default workflow for assigning metadata to dates.
# The data is loaded to a shared volume.
# The assignment module processes whatever is in the volume.
# The final output is written to a specified path in the specified output bucket.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: assignment-template
spec:
entrypoint: main
# This block for granting setting the group permissions on emptyDir volumes
securityContext:
fsGroup: 1001
fsGroupChangePolicy: OnRootMismatch
templates:
- name: main
inputs:
parameters:
- name: source_type
- name: r_args
# Define constant paths for use across container mounted volumes.
- name: in_path
value: /inputs
- name: out_path
value: /outputs
- name: tmp_path
value: /tmp
- name: error_path
value: /errors
- name: download_data_dir
value: download_data
- name: data_year_dir
value: data_year
# ConfigMap constants.
- name: log_level
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: log_level
# Git
- name: git_secret_name
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_secret_name
- name: git_secret_file_name
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_secret_file_name
- name: git_repo_url
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_repo_url
- name: git_branch
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_branch
- name: git_repo_name
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_repo_name
- name: git_repo_dir
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: git_repo_dir
# Output bucket
- name: output_bucket
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: output_bucket
- name: output_bucket_prefix
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: output_bucket_prefix
# Data year
- name: data_year_file
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: data_year_file
- name: data_year_bucket
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: data_year_bucket
- name: data_year_bucket_prefix
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: data_year_bucket_prefix
# Manifests
- name: manifest_file_name
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: manifest_file_name
- name: change_manifest_file_name
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: change_manifest_file_name
# R Code
- name: parallelization_internal
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: parallelization_internal
- name: relative_path_index
valueFrom:
configMapKeyRef:
name: "{{workflow.parameters.env_config}}"
key: relative_path_index
artifacts:
- name: data-year
path: "{{inputs.parameters.in_path}}/{{inputs.parameters.data_year_dir}}/{{inputs.parameters.data_year_file}}"
gcs:
bucket: "{{inputs.parameters.data_year_bucket}}"
key: "{{inputs.parameters.data_year_bucket_prefix}}"
volumes:
- name: in-vol
emptyDir: { }
- name: out-vol
emptyDir: { }
- name: tmp-vol
emptyDir: { }
- name: err-vol
emptyDir: { }
- name: git-secret-vol
secret:
secretName: "{{inputs.parameters.git_secret_name}}"
containerSet:
# Must mount volumes to make them accessible to all containers
# (otherwise they are only accessible to the "main" container).
volumeMounts:
- name: in-vol
mountPath: "{{inputs.parameters.in_path}}"
- name: out-vol
mountPath: "{{inputs.parameters.out_path}}"
- name: tmp-vol
mountPath: "{{inputs.parameters.tmp_path}}" # Required to run R code that creates a temp directory
- name: err-vol
mountPath: "{{inputs.parameters.error_path}}"
containers:
# Read all the metadata files from Git that have changed in the latest commit.
- name: load
image: us-central1-docker.pkg.dev/neon-shared-service/bei/neon-argo-workflows-data-change-manifest:sha-461c14b
securityContext:
runAsUser: 1001
runAsGroup: 1001
volumeMounts:
- name: git-secret-vol
mountPath: /key
resources:
requests:
memory: 1.5Gi
cpu: 1
limits:
memory: 2.5Gi
cpu: 1.25
env:
- name: DOWNLOAD_PATH
value: "{{inputs.parameters.tmp_path}}/{{inputs.parameters.git_repo_name}}"
- name: GIT_BRANCH_NAME
value: "{{inputs.parameters.git_branch}}"
- name: GIT_REPO_DIR
value: "{{inputs.parameters.git_repo_dir}}"
- name: GIT_REPO_NAME
value: "{{inputs.parameters.git_repo_name}}"
- name: GIT_REPO_URL
value: "{{inputs.parameters.git_repo_url}}"
- name: KEY_PATH
value: "/key/{{inputs.parameters.git_secret_file_name}}"
- name: LOGURU_LEVEL
value: "{{inputs.parameters.log_level}}"
- name: OUTPUT_PATH
value: "{{inputs.parameters.in_path}}/{{inputs.parameters.download_data_dir}}"
command:
- sh
- -c
- python3 /app/clone_changed_files.py
# Assign the assets and locations
- name: assign
dependencies:
- load
image: us-central1-docker.pkg.dev/neon-shared-service/neonscience/neon-is-loc-grp-asgn:v1.3.4
# Need to run as user 1001 because the gcs input is loaded as
# this user and group, as controlled by the helm chart.
# Note that the image sets the user and group as 9999, but this
# doesn't seem to matter because we don't need write priveleges in the container.
securityContext:
runAsUser: 1001
runAsGroup: 1001
# NOTE: The individual resources requested for each container don't really matter;
# it's the sum total that is actually available to each container,
# so long as they run in sequence. Any containers running in parallel must have
# the sum of their resource needs available.
resources:
requests:
memory: 3Gi
cpu: 1
limits:
memory: 4Gi
cpu: 1.25
env:
- name: DIR_IN
value: "{{inputs.parameters.in_path}}/{{inputs.parameters.download_data_dir}}"
- name: DIR_OUT
value: "{{inputs.parameters.out_path}}"
- name: ERR_PATH
value: "{{inputs.parameters.error_path}}"
- name: FILE_YEAR
value: "{{inputs.parameters.in_path}}/{{inputs.parameters.data_year_dir}}/{{inputs.parameters.data_year_file}}"
- name: LOG_LEVEL
value: "{{inputs.parameters.log_level}}"
- name: RELATIVE_PATH_INDEX
value: "{{inputs.parameters.relative_path_index}}"
- name: R_ARGS
value: "{{inputs.parameters.r_args}}"
- name: PARALLELIZATION_INTERNAL
value: "{{inputs.parameters.parallelization_internal}}"
command:
- bash
- -c
- |
# Use bash-scrict mode. See http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -euo pipefail
IFS=$'\n\t'
eval "Rscript ./flow.loc.grp.asgn.R $R_ARGS"
# Generated the change manifest and write it to a bucket.
- name: main
dependencies:
- assign
image: us-central1-docker.pkg.dev/neon-shared-service/bei/neon-argo-workflows-data-change-manifest:sha-461c14b
resources:
requests:
memory: 300Mi
cpu: 100m
limits:
memory: 500Mi
cpu: 1
env:
- name: CHANGE_MANIFEST_FILE_NAME
value: "{{inputs.parameters.change_manifest_file_name}}"
- name: LOGURU_LEVEL
value: "{{inputs.parameters.log_level}}"
- name: MANIFEST_BUCKET
value: "{{inputs.parameters.output_bucket}}"
- name: MANIFEST_BUCKET_PREFIX
value: "{{inputs.parameters.output_bucket_prefix}}"
- name: MANIFEST_FILE_NAME
value: "{{inputs.parameters.manifest_file_name}}"
- name: OUTPUT_PATH
value: "{{inputs.parameters.tmp_path}}"
- name: RUN_DATE
value: "{{workflow.parameters.run_date}}"
- name: SOURCE_PATH
value: "{{inputs.parameters.out_path}}/{{inputs.parameters.source_type}}"
- name: SOURCE_TYPE
value: "{{inputs.parameters.source_type}}"
command:
- sh
- -c
- python3 /app/main.py
Loading