Storage API overview

The Object Storage API uses Kubernetes custom resources and relies on the Kubernetes Resource Model. The APIs are used for the provisioning and administration of object storage resources. They are used to manage the lifecycle of object storage resources in a given organization, including creating, reading, updating, and deleting buckets. The APIs are also used for listing buckets, setting bucket retention policies, and setting the storage class of buckets. Block storage is managed with standard Kubernetes APIs.

Service endpoint and discovery document

The following URL is the API endpoint for the Object Storage APIs: https://GDCH_API_SERVER_ENDPOINT/apis/object.gdc.goog/v1 where GDCH_API_SERVER_ENDPOINT is the endpoint of the GDCH API server.

Using the kubectl proxy command, you can access that URL in your browser or with a tool such as curl to get the discovery document for the Object Storage API. The kubectl proxy command opens a proxy to the Kubernetes API server on your local machine. After that command is running, access the document at the following URL: http://127.0.0.1:8001/apis/object.gdc.goog/v1

S3 REST API overview

The Google Distributed Cloud Hosted (GDCH) Object Storage XML API is a RESTful interface that allows you to manage object storage data in a programmatic way. As a RESTful API, it relies on method and scoping information to define the operations to perform:

  • Method information. You specify the method information with standard HTTP methods, such as DELETE, GET, HEAD, and PUT.
  • Scoping information. You specify the scoping information with an accessible endpoint (URI) and various scoping parameters. For the XML API, the primary scoping parameters are the bucket and object names. Further scope your operations by using HTTP headers and query string parameters.

Volume Storage API overview

To create persistent volumes, follow the steps outlined by the Kubernetes documentation at https://kubernetes.io/docs/concepts/storage/persistent-volumes/. Interaction with Volume Storage within GDCH occurs entirely through Kubernetes storage primitives. The Volume Storage driver implements the Container Storage Interface (CSI) protocol and provisions and orchestrates the volumes in the storage system, opaque to the end user of the persistent volume.

GDCH supports a single storage class of type standard-rwo. See https://kubernetes.io/docs/concepts/storage/storage-classes/ for more information on storage classes.