[Feature] KFP pipeline artifacts remain on in-cluster SeaweedFS while syncing to external AWS S3 or Azure Blob in the background - #311
Conversation
…dation for SeaweedFS remote configuration
…d, detailing local and remote storage options with configuration examples
… configuration; enhance validation checks for Azure provider
…etails; refactor static credentials usage in templates
… disable remote storage
…guration details; add nonempty option in values.yaml for handling existing pipeline data during upgrades
…structions; update values.yaml for Azure storage configuration; enhance validation checks for Azure provider in templates
…rom values files and templates; update README.md to clarify SeaweedFS usage for pipeline artifacts.
…nfiguration; enhance validation checks for SeaweedFS remote provider in templates.
… by breaking down the command into multiple lines for better readability and maintainability.
… configuration; enhance Azure Blob example and clarify usage in templates.
| pipelines: | ||
| images: | ||
| mysql: | ||
| tag: "8.4" |
There was a problem hiding this comment.
Why did you add the image tag to the example?
There was a problem hiding this comment.
the testing fails otherwise
you want me to remove it?
| endpoint: s3.<REGION>.amazonaws.com | ||
| region: <REGION> # e.g. us-east-2 | ||
| forcePathStyle: false | ||
| mount: |
There was a problem hiding this comment.
These are the default values from the values, here you should add only the one the needs to be change
There was a problem hiding this comment.
in values.yaml the default is using local
you want me to put them in values.yaml with local?
| @@ -0,0 +1,20 @@ | |||
| storage: | |||
| mode: local | |||
There was a problem hiding this comment.
This part is point MLRun to store artifacts files in Azure/S3 if you want to keep it need to change the mode to the relevant provider
| {{- include "mlrun-ce.pipelines.labels" . | nindent 4 }} | ||
| type: Opaque | ||
| stringData: | ||
| accesskey: {{ include "mlrun-ce.seaweedfs.s3.accessKey" . | quote }} |
There was a problem hiding this comment.
From the helper, it looks like it is using MLRun configuration. Can you please verify that you can point MLRun to local but pipelines to remote
📝 Description
Adds SeaweedFS remote gateway support so KFP pipeline artifacts remain on in-cluster SeaweedFS (
pipelines.storage.mode: local) while syncing to external AWS S3 or Azure Blob in the background.This replaces the previous model where KFP talked directly to external object storage via
pipelines.storage.mode: s3/azure-blob. MLRun and Jupyter storage (storage.mode) is unchanged and independent.🛠️ Changes Made
seaweedfs.remote.enabled):seaweedfs-remote-secret.yaml— cloud credentials (S3 keys fromstorage.s3.*, Azure fromstorage.azure.*)seaweedfs-remote-config-job.yaml— Helm hook Job that runsremote.configure+remote.mounton the filerseaweedfs-remote-gateway-deployment.yaml—filer.remote.gatewaysyncs local bucket → remote backendexamples/seaweedfs-remote-s3-overlay.yaml,examples/seaweedfs-remote-azure-overlay.yamlstorage-validation.yaml):pipelines.storage.mode: local(rejects direct external KFP modes)seaweedfs.remote.*(provider, bucket, remote name charset, S3 endpoint, credentials)_helpers.tpl):mlrun-ce.pipelines.storage.modehardcoded tolocalprovidersblock fromkfp-launcher.yamlOBJECTSTORECONFIG_REGIONfromml-pipeline.yamlmlpipeline-seaweedfs-artifact.yaml→mlpipeline-artifact-secret.yamlmysql.yaml): auth plugin flag selected by image tag —--default-authentication-pluginfor 8.0.x,--mysql-native-password=ONfor 8.4+deployment.yaml+values.yaml): addedstartupProbe(/api); readiness probe path changed from/labto/apifor slow cold startsseaweedfs.remoteblock (defaultenabled: false); added tovalues.yamland all three install-mode values files0.12.0-rc.11✅ Checklist
charts/mlrun-ce/Chart.yaml.🧪 Testing
Please see