--- apiVersion: batch/v1 items: - apiVersion: batch/v1 kind: Job metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"batch/v1","kind":"Job","metadata":{"annotations":{},"name":"s3-init","namespace":"kserve"},"spec":{"backoffLimit":3,"template":{"spec":{"containers":[{"command":["/bin/sh","-c","aws s3 mb s3://logger-output || true\naws s3 mb s3://example-models || true\ncurl -L https://storage.googleapis.com/kfserving-examples/models/sklearn/1.0/model/model.joblib -o /tmp/sklearn-model.joblib\naws s3 cp /tmp/sklearn-model.joblib s3://example-models/sklearn/model.joblib --no-verify-ssl\naws s3 sync /shared/facebook/opt-125m s3://example-models/facebook/opt-125m/ --no-verify-ssl\n"],"env":[{"name":"AWS_ACCESS_KEY_ID","valueFrom":{"secretKeyRef":{"key":"accesskey","name":"mlpipeline-s3-artifact"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"secretkey","name":"mlpipeline-s3-artifact"}}},{"name":"AWS_DEFAULT_REGION","value":"us-east-1"},{"name":"AWS_ENDPOINT_URL_S3","value":"http://s3-service.kserve:8333"}],"image":"docker.io/amazon/aws-cli:2.33.11@sha256:88ea087837da1b31a3afeeb4538888244a3087a867ddb1909848643fcc4b324e","name":"s3-init","volumeMounts":[{"mountPath":"/shared","name":"model-cache"}]}],"initContainers":[{"command":["python3","-c","from huggingface_hub import snapshot_download\nsnapshot_download(\n \"facebook/opt-125m\",\n local_dir=\"/shared/facebook/opt-125m\",\n ignore_patterns=[\"*.msgpack\", \"*.h5\", \"flax_model*\", \"tf_model*\", \"rust_model*\"],\n)\nprint(\"Model download complete\")\n"],"env":[{"name":"HF_HUB_DISABLE_PROGRESS_BARS","value":"1"}],"image":"quay.io/opendatahub/kserve-storage-initializer@sha256:0459e31fff147b1f9487117ac00a86221572ce2251d3068d36cf76ed2126ea4f","name":"download-hf-model","volumeMounts":[{"mountPath":"/shared","name":"model-cache"}]}],"restartPolicy":"Never","volumes":[{"emptyDir":{},"name":"model-cache"}]}}}} creationTimestamp: "2026-05-20T13:56:26Z" generation: 1 labels: batch.kubernetes.io/controller-uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee batch.kubernetes.io/job-name: s3-init controller-uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee job-name: s3-init managedFields: - apiVersion: batch/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/last-applied-configuration: {} f:spec: f:backoffLimit: {} f:completionMode: {} f:completions: {} f:manualSelector: {} f:parallelism: {} f:podReplacementPolicy: {} f:suspend: {} f:template: f:spec: f:containers: k:{"name":"s3-init"}: .: {} f:command: {} f:env: .: {} k:{"name":"AWS_ACCESS_KEY_ID"}: .: {} f:name: {} f:valueFrom: .: {} f:secretKeyRef: {} k:{"name":"AWS_DEFAULT_REGION"}: .: {} f:name: {} f:value: {} k:{"name":"AWS_ENDPOINT_URL_S3"}: .: {} f:name: {} f:value: {} k:{"name":"AWS_SECRET_ACCESS_KEY"}: .: {} f:name: {} f:valueFrom: .: {} f:secretKeyRef: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/shared"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:initContainers: .: {} k:{"name":"download-hf-model"}: .: {} f:command: {} f:env: .: {} k:{"name":"HF_HUB_DISABLE_PROGRESS_BARS"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/shared"}: .: {} f:mountPath: {} f:name: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:terminationGracePeriodSeconds: {} f:volumes: .: {} k:{"name":"model-cache"}: .: {} f:emptyDir: {} f:name: {} manager: kubectl-client-side-apply operation: Update time: "2026-05-20T13:56:26Z" - apiVersion: batch/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:completionTime: {} f:conditions: {} f:ready: {} f:startTime: {} f:succeeded: {} f:terminating: {} f:uncountedTerminatedPods: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-05-20T13:57:44Z" name: s3-init namespace: kserve resourceVersion: "13321" uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee spec: backoffLimit: 3 completionMode: NonIndexed completions: 1 manualSelector: false parallelism: 1 podReplacementPolicy: TerminatingOrFailed selector: matchLabels: batch.kubernetes.io/controller-uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee suspend: false template: metadata: creationTimestamp: null labels: batch.kubernetes.io/controller-uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee batch.kubernetes.io/job-name: s3-init controller-uid: 84b845f1-9880-439c-9c7c-d5eea1ca5eee job-name: s3-init spec: containers: - command: - /bin/sh - -c - | aws s3 mb s3://logger-output || true aws s3 mb s3://example-models || true curl -L https://storage.googleapis.com/kfserving-examples/models/sklearn/1.0/model/model.joblib -o /tmp/sklearn-model.joblib aws s3 cp /tmp/sklearn-model.joblib s3://example-models/sklearn/model.joblib --no-verify-ssl aws s3 sync /shared/facebook/opt-125m s3://example-models/facebook/opt-125m/ --no-verify-ssl env: - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: key: accesskey name: mlpipeline-s3-artifact - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: key: secretkey name: mlpipeline-s3-artifact - name: AWS_DEFAULT_REGION value: us-east-1 - name: AWS_ENDPOINT_URL_S3 value: http://s3-service.kserve:8333 image: docker.io/amazon/aws-cli:2.33.11@sha256:88ea087837da1b31a3afeeb4538888244a3087a867ddb1909848643fcc4b324e imagePullPolicy: IfNotPresent name: s3-init resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /shared name: model-cache dnsPolicy: ClusterFirst initContainers: - command: - python3 - -c - | from huggingface_hub import snapshot_download snapshot_download( "facebook/opt-125m", local_dir="/shared/facebook/opt-125m", ignore_patterns=["*.msgpack", "*.h5", "flax_model*", "tf_model*", "rust_model*"], ) print("Model download complete") env: - name: HF_HUB_DISABLE_PROGRESS_BARS value: "1" image: quay.io/opendatahub/kserve-storage-initializer@sha256:0459e31fff147b1f9487117ac00a86221572ce2251d3068d36cf76ed2126ea4f imagePullPolicy: IfNotPresent name: download-hf-model resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /shared name: model-cache restartPolicy: Never schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - emptyDir: {} name: model-cache status: completionTime: "2026-05-20T13:57:44Z" conditions: - lastProbeTime: "2026-05-20T13:57:44Z" lastTransitionTime: "2026-05-20T13:57:44Z" message: Reached expected number of succeeded pods reason: CompletionsReached status: "True" type: SuccessCriteriaMet - lastProbeTime: "2026-05-20T13:57:44Z" lastTransitionTime: "2026-05-20T13:57:44Z" message: Reached expected number of succeeded pods reason: CompletionsReached status: "True" type: Complete ready: 0 startTime: "2026-05-20T13:56:26Z" succeeded: 1 terminating: 0 uncountedTerminatedPods: {} kind: JobList metadata: resourceVersion: "21115"