// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.cloud.batch.v1alpha; option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/cloud/batch/v1alpha;batch"; option java_multiple_files = true; option java_outer_classname = "VolumeProto"; option java_package = "com.google.cloud.batch.v1alpha"; option objc_class_prefix = "GCB"; option php_namespace = "Google\\Cloud\\Batch\\V1alpha"; option ruby_package = "Google::Cloud::Batch::V1alpha"; // Volume and mount parameters to be associated with a TaskSpec. A TaskSpec // might describe zero, one, or multiple volumes to be mounted as part of the // task. message Volume { // The source for the volume. oneof source { // An NFS source for the volume (could be a Filestore, for example). NFS nfs = 1; // A persistent disk source for the volume. PD pd = 2 [deprecated = true]; // A Google Cloud Storage source for the volume. GCS gcs = 3; // Device name of an attached disk string device_name = 6; } // Mount path for the volume, e.g. /mnt/share string mount_path = 4; // Mount options // For Google Cloud Storage, mount options are the global options supported by // gcsfuse tool. Batch will use them to mount the volume with the following // command: // "gcsfuse [global options] bucket mountpoint". // For PD, NFS, mount options are these supported by /etc/fstab. Batch will // use Fstab to mount such volumes. // https://help.ubuntu.com/community/Fstab repeated string mount_options = 5; } // Represents an NFS server and remote path: : message NFS { // URI of the NFS server, e.g. an IP address. string server = 1; // Remote source path exported from NFS, e.g., "/share". string remote_path = 2; } // Represents a GCP persistent disk message PD { // PD disk name, e.g. pd-1. string disk = 1; // PD device name, e.g. persistent-disk-1. string device = 2; // Whether this is an existing PD. Default is false. If false, i.e., new // PD, we will format it into ext4 and mount to the given path. If true, i.e., // existing PD, it should be in ext4 format and we will mount it to the given // path. bool existing = 3 [deprecated = true]; } // Represents a Google Cloud Storage volume source config. message GCS { // Remote path, either a bucket name or a subdirectory of a bucket, e.g.: // bucket_name, bucket_name/subdirectory/ string remote_path = 1; }