Deploying Netsy on Google Cloud (GCP)
Authentication
Prefer Application Default Credentials (ADC):
- On GCE or GKE, use the attached service account or workload identity.
- Outside GCP, set
GOOGLE_APPLICATION_CREDENTIALSto a service-account JSON file.
Example:
export GOOGLE_APPLICATION_CREDENTIALS=/etc/netsy/gcp-service-account.jsonExample Config
{
"cluster_id": "my-cluster",
"storage": {
"provider": "gcs",
"bucket_name": "my-netsy-bucket",
"key_prefix": "",
"class": "STANDARD",
"encryption": "customer-managed",
"kms_key_id": "projects/my-project/locations/global/keyRings/netsy/cryptoKeys/main"
}
}Storage Semantics
storage.classuses GCS storage classes such asSTANDARD,NEARLINE,COLDLINE, andARCHIVE.storage.encryption = "provider-managed"uses Google’s default server-side encryption.storage.encryption = "customer-managed"requiresstorage.kms_key_idto be a full Cloud KMS key resource.- Conditional updates such as
members.jsonand Node registration files should use GCS generation or metageneration preconditions rather than S3If-Matchheaders.
Required Permissions
The Netsy service account should have permission to:
- Read objects
- Write objects
- Delete objects
- List objects in the bucket
- Read object metadata
- Use the configured Cloud KMS key when
customer-managedencryption is enabled
Typical roles are a combination of bucket-scoped storage permissions plus roles/cloudkms.cryptoKeyEncrypterDecrypter for the KMS key.