diff --git a/releases/2025/02/gen3-release-notes.md b/releases/2025/02/gen3-release-notes.md new file mode 100644 index 000000000..05173901a --- /dev/null +++ b/releases/2025/02/gen3-release-notes.md @@ -0,0 +1,47 @@ +# Core Gen3 Release 2025.02 (Chromite) +## uc-cdis/cloud-automation + +#### Bug Fixes + - Fix mismatching parameter names in Single Table Migration Job ([#2657](https://github.com/uc-cdis/cloud-automation/pull/2657)) + +#### Improvements + - Make Single Table Migration Job a Priority Job so that the job doesn't get + killed if its running for a long time ([#2657](https://github.com/uc-cdis/cloud-automation/pull/2657)) + +## uc-cdis/data-portal + +#### Improvements + - update expolrer config example in default config file ([#1660](https://github.com/uc-cdis/data-portal/pull/1660)) + +#### Dependency Updates + - update guppy to 0.20.1 ([#1662](https://github.com/uc-cdis/data-portal/pull/1662)) + +## uc-cdis/fence + +#### Dependency Updates + - Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.4 to 3.0.6. + (#1192) + +## uc-cdis/hatchery + +#### Improvements + - Allow assume-role for cross-account access to pay model table ([#119](https://github.com/uc-cdis/hatchery/pull/119)) + - Run a quick check before creating the subnet to make sure the instance type + for nextflow is available in that AZ. ([#111](https://github.com/uc-cdis/hatchery/pull/111)) + +## uc-cdis/indexd + +#### Improvements + - Add + Fix Parameters for Single Table IndexD Migration ([#384](https://github.com/uc-cdis/indexd/pull/384)) + +## uc-cdis/sheepdog + +#### Improvements + - Support client_credentials tokens ([#425](https://github.com/uc-cdis/sheepdog/pull/425)) + +## uc-cdis/tube + +#### Dependency Updates + - Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.3 to 3.0.6. + (#289) + diff --git a/releases/2025/02/manifest.json b/releases/2025/02/manifest.json new file mode 100644 index 000000000..507642689 --- /dev/null +++ b/releases/2025/02/manifest.json @@ -0,0 +1,313 @@ +{ + "notes": [ + "This is the release manifest", + "That's all I have to say" + ], + "jenkins": { + "autodeploy": "yes" + }, + "versions": { + "arborist": "quay.io/cdis/arborist:2025.02", + "aws-es-proxy": "quay.io/cdis/aws-es-proxy:v1.3.1", + "fence": "quay.io/cdis/fence:2025.02", + "indexd": "quay.io/cdis/indexd:2025.02", + "peregrine": "quay.io/cdis/peregrine:2025.02", + "revproxy": "quay.io/cdis/nginx:2025.02", + "sheepdog": "quay.io/cdis/sheepdog:2025.02", + "portal": "quay.io/cdis/data-portal:2025.02", + "fluentd": "fluent/fluentd-kubernetes-daemonset:v1.2-debian-cloudwatch", + "spark": "quay.io/cdis/gen3-spark:2025.02", + "tube": "quay.io/cdis/tube:2025.02", + "guppy": "quay.io/cdis/guppy:2025.02", + "sower": "quay.io/cdis/sower:2025.02", + "hatchery": "quay.io/cdis/hatchery:2025.02", + "ambassador": "quay.io/datawire/ambassador:1.4.2", + "wts": "quay.io/cdis/workspace-token-service:2025.02", + "manifestservice": "quay.io/cdis/manifestservice:2025.02", + "ssjdispatcher": "quay.io/cdis/ssjdispatcher:2025.02" + }, + "arborist": { + "deployment_version": "2" + }, + "indexd": { + "arborist": "true" + }, + "sower": [ + { + "name": "pelican-export", + "action": "export", + "container": { + "name": "job-task", + "image": "quay.io/cdis/pelican-export:2025.02", + "pull_policy": "Always", + "env": [ + { + "name": "DICTIONARY_URL", + "valueFrom": { + "configMapKeyRef": { + "name": "manifest-global", + "key": "dictionary_url" + } + } + }, + { + "name": "GEN3_HOSTNAME", + "valueFrom": { + "configMapKeyRef": { + "name": "manifest-global", + "key": "hostname" + } + } + }, + { + "name": "ROOT_NODE", + "value": "subject" + } + ], + "volumeMounts": [ + { + "name": "pelican-creds-volume", + "readOnly": true, + "mountPath": "/pelican-creds.json", + "subPath": "config.json" + }, + { + "name": "peregrine-creds-volume", + "readOnly": true, + "mountPath": "/peregrine-creds.json", + "subPath": "creds.json" + } + ], + "cpu-limit": "1", + "memory-limit": "4Gi" + }, + "volumes": [ + { + "name": "pelican-creds-volume", + "secret": { + "secretName": "pelicanservice-g3auto" + } + }, + { + "name": "peregrine-creds-volume", + "secret": { + "secretName": "peregrine-creds" + } + } + ], + "restart_policy": "Never" + } + ], + "hatchery": { + "user-namespace": "jupyter-pods", + "sub-dir": "/lw-workspace", + "user-volume-size": "10Gi", + "sidecar": { + "cpu-limit": "0.8", + "memory-limit": "256Mi", + "image": "quay.io/cdis/gen3fuse-sidecar:2025.02", + "env": { + "NAMESPACE": "", + "HOSTNAME": "" + }, + "args": [ + + ], + "command": [ + "/bin/bash", + "/sidecarDockerrun.sh" + ], + "lifecycle-pre-stop": [ + "su", + "-c", + "echo test", + "-s", + "/bin/sh", + "root" + ] + }, + "containers": [ + { + "target-port": 8888, + "cpu-limit": "0.8", + "memory-limit": "1.5Gi", + "name": "Brain - Python/R/Freesurfer", + "image": "quay.io/cdis/jupyterbrain:1.1", + "env": { + + }, + "args": [ + "--NotebookApp.base_url=/lw-workspace/proxy/", + "--NotebookApp.password=''", + "--NotebookApp.token=''" + ], + "command": [ + "start-notebook.sh" + ], + "path-rewrite": "/lw-workspace/proxy/", + "use-tls": "false", + "ready-probe": "/lw-workspace/proxy/", + "lifecycle-post-start": [ + "/bin/sh", + "-c", + "export IAM=`whoami`; rm -rf /home/$IAM/pd/dockerHome; ln -s $(pwd) /home/$IAM/pd/dockerHome; mkdir -p /home/$IAM/.jupyter/custom; echo \"define(['base/js/namespace'], function(Jupyter){Jupyter._target = '_self';})\" >/home/$IAM/.jupyter/custom/custom.js; ln -s /data /home/$IAM/pd/; true" + ], + "user-uid": 1000, + "fs-gid": 100, + "user-volume-location": "/home/jovyan/pd" + }, + { + "target-port": 8888, + "cpu-limit": "0.5", + "memory-limit": "256Mi", + "name": "Bioinfo - Python/R", + "image": "quay.io/occ_data/jupyternotebook:1.7.2", + "env": { + + }, + "args": [ + "--NotebookApp.base_url=/lw-workspace/proxy/", + "--NotebookApp.password=''", + "--NotebookApp.token=''" + ], + "command": [ + "start-notebook.sh" + ], + "path-rewrite": "/lw-workspace/proxy/", + "use-tls": "false", + "ready-probe": "/lw-workspace/proxy/", + "lifecycle-post-start": [ + "/bin/sh", + "-c", + "export IAM=`whoami`; rm -rf /home/$IAM/pd/dockerHome; ln -s $(pwd) /home/$IAM/pd/dockerHome; mkdir -p /home/$IAM/.jupyter/custom; echo \"define(['base/js/namespace'], function(Jupyter){Jupyter._target = '_self';})\" >/home/$IAM/.jupyter/custom/custom.js; ln -s /data /home/$IAM/pd/; true" + ], + "user-uid": 1000, + "fs-gid": 100, + "user-volume-location": "/home/jovyan/pd" + }, + { + "target-port": 8888, + "cpu-limit": "0.8", + "memory-limit": "1024Mi", + "name": "Bioinfo - Python/R", + "image": "quay.io/occ_data/jupyternotebook:1.7.2", + "env": { + + }, + "args": [ + "--NotebookApp.base_url=/lw-workspace/proxy/", + "--NotebookApp.password=''", + "--NotebookApp.token=''" + ], + "command": [ + "start-notebook.sh" + ], + "path-rewrite": "/lw-workspace/proxy/", + "use-tls": "false", + "ready-probe": "/lw-workspace/proxy/", + "lifecycle-post-start": [ + "/bin/sh", + "-c", + "export IAM=`whoami`; rm -rf /home/$IAM/pd/dockerHome; ln -s $(pwd) /home/$IAM/pd/dockerHome; mkdir -p /home/$IAM/.jupyter/custom; echo \"define(['base/js/namespace'], function(Jupyter){Jupyter._target = '_self';})\" >/home/$IAM/.jupyter/custom/custom.js; ln -s /data /home/$IAM/pd/; true" + ], + "user-uid": 1000, + "fs-gid": 100, + "user-volume-location": "/home/jovyan/pd" + } + ] + }, + "global": { + "environment": "", + "hostname": "", + "revproxy_arn": "", + "portal_app": "gitops", + "kube_bucket": "kube--gen3", + "logs_bucket": "logs--gen3", + "sync_from_dbgap": "False", + "dispatcher_job_num": "5", + "useryaml_s3path": "", + "netpolicy": "on", + "tier_access_level": "regular", + "tier_access_limit": "50", + "public_datasets": true + }, + "ssjdispatcher": { + "job_images": { + "indexing": "quay.io/cdis/indexs3client:2025.02" + } + }, + "canary": { + "default": 0 + }, + "guppy": { + "indices": [ + { + "index": "_etl", + "type": "case" + }, + { + "index": "_file", + "type": "file" + } + ], + "config_index": "_array-config", + "auth_filter_field": "auth_resource_path" + }, + "scaling": { + "arborist": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "portal": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "fence": { + "strategy": "auto", + "min": 5, + "max": 15, + "targetCpu": 40 + }, + "indexd": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "peregrine": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "presigned-url-fence": { + "strategy": "auto", + "min": 15, + "max": 25, + "targetCpu": 40 + }, + "revproxy": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "sheepdog": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + }, + "guppy": { + "strategy": "auto", + "min": 2, + "max": 4, + "targetCpu": 40 + } + } + }