[{"data":1,"prerenderedAt":993},["ShallowReactive",2],{"docs-navigation":3,"-docs-installation-storage-google-cloud-storage":410,"-docs-installation-storage-google-cloud-storage-surround":988},[4,19,166,319,333,397],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Overview","i-lucide-compass","\u002Fdocs\u002Foverview","docs\u002F1.overview",[10,14],{"title":11,"path":12,"stem":13},"Introduction","\u002Fdocs\u002Foverview\u002Fintroduction","docs\u002F1.overview\u002F1.introduction",{"title":15,"path":16,"stem":17},"JFrog compatibility","\u002Fdocs\u002Foverview\u002Fjfrog-compatibility","docs\u002F1.overview\u002F2.jfrog-compatibility",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Installation","i-lucide-download","\u002Fdocs\u002Finstallation","docs\u002F2.installation",[25,29,43,68,108,112,116,162],{"title":26,"path":27,"stem":28},"Choosing a method","\u002Fdocs\u002Finstallation\u002Foverview","docs\u002F2.installation\u002F1.overview",{"title":30,"icon":31,"path":32,"stem":33,"children":34,"page":18},"Single binary","i-lucide-terminal","\u002Fdocs\u002Finstallation\u002Fsingle-binary","docs\u002F2.installation\u002F2.single-binary",[35,39],{"title":36,"path":37,"stem":38},"Quick start","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Fquick-start","docs\u002F2.installation\u002F2.single-binary\u002F1.quick-start",{"title":40,"path":41,"stem":42},"Limits and backups","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Foperations","docs\u002F2.installation\u002F2.single-binary\u002F2.operations",{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":18},"Docker","i-simple-icons-docker","\u002Fdocs\u002Finstallation\u002Fdocker","docs\u002F2.installation\u002F3.docker",[49,52,56,60,64],{"title":36,"path":50,"stem":51},"\u002Fdocs\u002Finstallation\u002Fdocker\u002Fquick-start","docs\u002F2.installation\u002F3.docker\u002F1.quick-start",{"title":53,"path":54,"stem":55},"PostgreSQL and S3","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fpostgresql-and-s3","docs\u002F2.installation\u002F3.docker\u002F2.postgresql-and-s3",{"title":57,"path":58,"stem":59},"Docker Compose","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose","docs\u002F2.installation\u002F3.docker\u002F3.compose",{"title":61,"path":62,"stem":63},"Compose settings","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-settings","docs\u002F2.installation\u002F3.docker\u002F4.compose-settings",{"title":65,"path":66,"stem":67},"Compose with another object store","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-other-object-storage","docs\u002F2.installation\u002F3.docker\u002F5.compose-other-object-storage",{"title":69,"icon":70,"path":71,"stem":72,"children":73,"page":18},"Kubernetes","i-simple-icons-kubernetes","\u002Fdocs\u002Finstallation\u002Fkubernetes","docs\u002F2.installation\u002F4.kubernetes",[74,77,80,84,88,92,96,100,104],{"title":5,"path":75,"stem":76},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Foverview","docs\u002F2.installation\u002F4.kubernetes\u002F1.overview",{"title":36,"path":78,"stem":79},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fquick-start","docs\u002F2.installation\u002F4.kubernetes\u002F2.quick-start",{"title":81,"path":82,"stem":83},"External PostgreSQL","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-postgresql","docs\u002F2.installation\u002F4.kubernetes\u002F3.external-postgresql",{"title":85,"path":86,"stem":87},"External object storage","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-object-storage","docs\u002F2.installation\u002F4.kubernetes\u002F4.external-object-storage",{"title":89,"path":90,"stem":91},"Exposing Relic","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexposing","docs\u002F2.installation\u002F4.kubernetes\u002F5.exposing",{"title":93,"path":94,"stem":95},"Values","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fvalues","docs\u002F2.installation\u002F4.kubernetes\u002F6.values",{"title":97,"path":98,"stem":99},"Upgrades and removal","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fupgrades","docs\u002F2.installation\u002F4.kubernetes\u002F7.upgrades",{"title":101,"path":102,"stem":103},"Hardening and probes","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fhardening","docs\u002F2.installation\u002F4.kubernetes\u002F8.hardening",{"title":105,"path":106,"stem":107},"Monitoring","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fmonitoring","docs\u002F2.installation\u002F4.kubernetes\u002F9.monitoring",{"title":109,"path":110,"stem":111},"Cloudflare","\u002Fdocs\u002Finstallation\u002Fcloudflare","docs\u002F2.installation\u002F5.cloudflare",{"title":113,"path":114,"stem":115},"Configuration reference","\u002Fdocs\u002Finstallation\u002Fconfiguration","docs\u002F2.installation\u002F6.configuration",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":18},"Storage","i-lucide-hard-drive","\u002Fdocs\u002Finstallation\u002Fstorage","docs\u002F2.installation\u002F7.storage",[122,126,130,134,138,142,146,150,154,158],{"title":123,"path":124,"stem":125},"Storage overview","\u002Fdocs\u002Finstallation\u002Fstorage\u002Foverview","docs\u002F2.installation\u002F7.storage\u002F1.overview",{"title":127,"path":128,"stem":129},"Azure Blob Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fazure-blob-storage","docs\u002F2.installation\u002F7.storage\u002F10.azure-blob-storage",{"title":131,"path":132,"stem":133},"SeaweedFS","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fseaweedfs","docs\u002F2.installation\u002F7.storage\u002F2.seaweedfs",{"title":135,"path":136,"stem":137},"Amazon S3","\u002Fdocs\u002Finstallation\u002Fstorage\u002Famazon-s3","docs\u002F2.installation\u002F7.storage\u002F3.amazon-s3",{"title":139,"path":140,"stem":141},"Cloudflare R2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fcloudflare-r2","docs\u002F2.installation\u002F7.storage\u002F4.cloudflare-r2",{"title":143,"path":144,"stem":145},"MinIO","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fminio","docs\u002F2.installation\u002F7.storage\u002F5.minio",{"title":147,"path":148,"stem":149},"Google Cloud Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fgoogle-cloud-storage","docs\u002F2.installation\u002F7.storage\u002F6.google-cloud-storage",{"title":151,"path":152,"stem":153},"Backblaze B2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fbackblaze-b2","docs\u002F2.installation\u002F7.storage\u002F7.backblaze-b2",{"title":155,"path":156,"stem":157},"Other S3-compatible services","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fother","docs\u002F2.installation\u002F7.storage\u002F8.other",{"title":159,"path":160,"stem":161},"Filesystem","\u002Fdocs\u002Finstallation\u002Fstorage\u002Ffilesystem","docs\u002F2.installation\u002F7.storage\u002F9.filesystem",{"title":163,"path":164,"stem":165},"Development","\u002Fdocs\u002Finstallation\u002Fdevelopment","docs\u002F2.installation\u002F8.development",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":18},"Guides","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F3.guides",[172,176,180,254,296,300,303,307,311,315],{"title":173,"path":174,"stem":175},"Repositories","\u002Fdocs\u002Fguides\u002Frepositories","docs\u002F3.guides\u002F1.repositories",{"title":177,"path":178,"stem":179},"Replication","\u002Fdocs\u002Fguides\u002Freplication","docs\u002F3.guides\u002F10.replication",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":18},"Package types","i-lucide-package","\u002Fdocs\u002Fguides\u002Fpackage-types","docs\u002F3.guides\u002F2.package-types",[186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250],{"title":187,"path":188,"stem":189},"npm, yarn and pnpm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnpm","docs\u002F3.guides\u002F2.package-types\u002F01.npm",{"title":191,"path":192,"stem":193},"Maven and Gradle","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fmaven-gradle","docs\u002F3.guides\u002F2.package-types\u002F02.maven-gradle",{"title":195,"path":196,"stem":197},"Docker and OCI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdocker","docs\u002F3.guides\u002F2.package-types\u002F03.docker",{"title":199,"path":200,"stem":201},"Go","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgo","docs\u002F3.guides\u002F2.package-types\u002F04.go",{"title":203,"path":204,"stem":205},"PyPI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fpypi","docs\u002F3.guides\u002F2.package-types\u002F05.pypi",{"title":207,"path":208,"stem":209},"Helm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhelm","docs\u002F3.guides\u002F2.package-types\u002F06.helm",{"title":211,"path":212,"stem":213},"NuGet","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnuget","docs\u002F3.guides\u002F2.package-types\u002F07.nuget",{"title":215,"path":216,"stem":217},"RubyGems","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frubygems","docs\u002F3.guides\u002F2.package-types\u002F08.rubygems",{"title":219,"path":220,"stem":221},"Cargo","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fcargo","docs\u002F3.guides\u002F2.package-types\u002F09.cargo",{"title":223,"path":224,"stem":225},"Conan","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fconan","docs\u002F3.guides\u002F2.package-types\u002F10.conan",{"title":227,"path":228,"stem":229},"Terraform and OpenTofu","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fterraform","docs\u002F3.guides\u002F2.package-types\u002F11.terraform",{"title":231,"path":232,"stem":233},"Hugging Face","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhugging-face","docs\u002F3.guides\u002F2.package-types\u002F12.hugging-face",{"title":235,"path":236,"stem":237},"Generic files","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgeneric","docs\u002F3.guides\u002F2.package-types\u002F13.generic",{"title":239,"path":240,"stem":241},"RPM","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frpm","docs\u002F3.guides\u002F2.package-types\u002F14.rpm",{"title":243,"path":244,"stem":245},"Debian","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdebian","docs\u002F3.guides\u002F2.package-types\u002F15.debian",{"title":247,"path":248,"stem":249},"Alpine","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Falpine","docs\u002F3.guides\u002F2.package-types\u002F16.alpine",{"title":251,"path":252,"stem":253},"Nix","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnix","docs\u002F3.guides\u002F2.package-types\u002F17.nix",{"title":255,"icon":256,"path":257,"stem":258,"children":259,"page":18},"Security","i-lucide-shield","\u002Fdocs\u002Fguides\u002Fsecurity","docs\u002F3.guides\u002F3.security",[260,264,268,272,276,280,284,288,292],{"title":261,"path":262,"stem":263},"Permissions","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fpermissions","docs\u002F3.guides\u002F3.security\u002F1.permissions",{"title":265,"path":266,"stem":267},"LDAP","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fldap","docs\u002F3.guides\u002F3.security\u002F2.ldap",{"title":269,"path":270,"stem":271},"Access tokens","\u002Fdocs\u002Fguides\u002Fsecurity\u002Ftokens","docs\u002F3.guides\u002F3.security\u002F3.tokens",{"title":273,"path":274,"stem":275},"Relic Scan","\u002Fdocs\u002Fguides\u002Fsecurity\u002Frelic-scan","docs\u002F3.guides\u002F3.security\u002F4.relic-scan",{"title":277,"path":278,"stem":279},"CVE intelligence","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fcve-intelligence","docs\u002F3.guides\u002F3.security\u002F5.cve-intelligence",{"title":281,"path":282,"stem":283},"Audit log","\u002Fdocs\u002Fguides\u002Fsecurity\u002Faudit-log","docs\u002F3.guides\u002F3.security\u002F6.audit-log",{"title":285,"path":286,"stem":287},"Single sign-on","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fsingle-sign-on","docs\u002F3.guides\u002F3.security\u002F7.single-sign-on",{"title":289,"path":290,"stem":291},"SCIM provisioning","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fscim","docs\u002F3.guides\u002F3.security\u002F8.scim",{"title":293,"path":294,"stem":295},"Workload identities","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fworkload-identities","docs\u002F3.guides\u002F3.security\u002F9.workload-identities",{"title":297,"path":298,"stem":299},"Operations","\u002Fdocs\u002Fguides\u002Foperations","docs\u002F3.guides\u002F4.operations",{"title":105,"path":301,"stem":302},"\u002Fdocs\u002Fguides\u002Fmonitoring","docs\u002F3.guides\u002F5.monitoring",{"title":304,"path":305,"stem":306},"Metrics reference","\u002Fdocs\u002Fguides\u002Fmetrics-reference","docs\u002F3.guides\u002F6.metrics-reference",{"title":308,"path":309,"stem":310},"Webhooks","\u002Fdocs\u002Fguides\u002Fwebhooks","docs\u002F3.guides\u002F7.webhooks",{"title":312,"path":313,"stem":314},"Projects","\u002Fdocs\u002Fguides\u002Fprojects","docs\u002F3.guides\u002F8.projects",{"title":316,"path":317,"stem":318},"AI agents","\u002Fdocs\u002Fguides\u002Fai-agents","docs\u002F3.guides\u002F9.ai-agents",{"title":320,"icon":321,"path":322,"stem":323,"children":324,"page":18},"API","i-lucide-braces","\u002Fdocs\u002Fapi","docs\u002F4.api",[325,329],{"title":326,"path":327,"stem":328},"API usage","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F4.api\u002F1.overview",{"title":330,"path":331,"stem":332},"Relic API","\u002Fdocs\u002Fapi\u002Frelic-api","docs\u002F4.api\u002F2.relic-api",{"title":334,"icon":31,"path":335,"stem":336,"children":337,"page":18},"CLI","\u002Fdocs\u002Fcli","docs\u002F5.cli",[338,341,345,349,353,357,361,365,369,373,377,381,385,389,393],{"title":5,"path":339,"stem":340},"\u002Fdocs\u002Fcli\u002Foverview","docs\u002F5.cli\u002F01.overview",{"title":342,"path":343,"stem":344},"Sign in and contexts","\u002Fdocs\u002Fcli\u002Fsign-in","docs\u002F5.cli\u002F02.sign-in",{"title":346,"path":347,"stem":348},"Resources","\u002Fdocs\u002Fcli\u002Fresources","docs\u002F5.cli\u002F03.resources",{"title":350,"path":351,"stem":352},"apply, diff and delete","\u002Fdocs\u002Fcli\u002Fapply","docs\u002F5.cli\u002F04.apply",{"title":354,"path":355,"stem":356},"Artifacts","\u002Fdocs\u002Fcli\u002Ffiles","docs\u002F5.cli\u002F05.files",{"title":358,"path":359,"stem":360},"Server, API and tokens","\u002Fdocs\u002Fcli\u002Fplatform","docs\u002F5.cli\u002F06.platform",{"title":362,"path":363,"stem":364},"Builds and images","\u002Fdocs\u002Fcli\u002Fbuilds","docs\u002F5.cli\u002F07.builds",{"title":366,"path":367,"stem":368},"Scanning and auditing","\u002Fdocs\u002Fcli\u002Fsecurity","docs\u002F5.cli\u002F08.security",{"title":370,"path":371,"stem":372},"Releases","\u002Fdocs\u002Fcli\u002Freleases","docs\u002F5.cli\u002F09.releases",{"title":374,"path":375,"stem":376},"Evidence","\u002Fdocs\u002Fcli\u002Fevidence","docs\u002F5.cli\u002F10.evidence",{"title":378,"path":379,"stem":380},"Package managers","\u002Fdocs\u002Fcli\u002Fpackage-managers","docs\u002F5.cli\u002F11.package-managers",{"title":382,"path":383,"stem":384},"Scan reports and VEX","\u002Fdocs\u002Fcli\u002Freports-and-vex","docs\u002F5.cli\u002F12.reports-and-vex",{"title":386,"path":387,"stem":388},"Migrating from Artifactory","\u002Fdocs\u002Fcli\u002Fimport","docs\u002F5.cli\u002F13.import",{"title":390,"path":391,"stem":392},"Database","\u002Fdocs\u002Fcli\u002Fdatabase","docs\u002F5.cli\u002F14.database",{"title":394,"path":395,"stem":396},"Machine setup","\u002Fdocs\u002Fcli\u002Fsetup","docs\u002F5.cli\u002F15.setup",{"title":398,"icon":399,"path":400,"stem":401,"children":402,"page":18},"SDK","i-lucide-boxes","\u002Fdocs\u002Fsdk","docs\u002F6.sdk",[403,406],{"title":5,"path":404,"stem":405},"\u002Fdocs\u002Fsdk\u002Foverview","docs\u002F6.sdk\u002F1.overview",{"title":407,"path":408,"stem":409},"Relic API clients","\u002Fdocs\u002Fsdk\u002Frelic-api-clients","docs\u002F6.sdk\u002F2.relic-api-clients",{"id":411,"title":147,"body":412,"description":981,"extension":982,"links":983,"meta":984,"navigation":985,"path":148,"seo":986,"stem":149,"__hash__":987},"docs\u002Fdocs\u002F2.installation\u002F7.storage\u002F6.google-cloud-storage.md",{"type":413,"value":414,"toc":976},"minimark",[415,424,429,432,470,473,495,498,519,526,626,629,649,653,659,679,682,726,729,762,765,814,818,858,861,966,972],[416,417,418,419,423],"p",{},"Relic uses Application Default Credentials: GKE workload identity, the\nattached service account, or ",[420,421,422],"code",{},"GOOGLE_APPLICATION_CREDENTIALS",".",[425,426,428],"h2",{"id":427},"create-the-buckets","Create the buckets",[416,430,431],{},"This command creates the artifacts bucket:",[433,434,439],"pre",{"className":435,"code":436,"language":437,"meta":438,"style":438},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","gcloud storage buckets create gs:\u002F\u002Fexample-relic-artifacts --location=europe-west3 --uniform-bucket-level-access\n","bash","",[420,440,441],{"__ignoreMap":438},[442,443,446,450,454,457,460,463,467],"span",{"class":444,"line":445},"line",1,[442,447,449],{"class":448},"seIyd","gcloud",[442,451,453],{"class":452},"sasMN"," storage",[442,455,456],{"class":452}," buckets",[442,458,459],{"class":452}," create",[442,461,462],{"class":452}," gs:\u002F\u002Fexample-relic-artifacts",[442,464,466],{"class":465},"smky3"," --location=europe-west3",[442,468,469],{"class":465}," --uniform-bucket-level-access\n",[416,471,472],{},"This command creates the temporary bucket:",[433,474,476],{"className":435,"code":475,"language":437,"meta":438,"style":438},"gcloud storage buckets create gs:\u002F\u002Fexample-relic-temporary --location=europe-west3 --uniform-bucket-level-access\n",[420,477,478],{"__ignoreMap":438},[442,479,480,482,484,486,488,491,493],{"class":444,"line":445},[442,481,449],{"class":448},[442,483,453],{"class":452},[442,485,456],{"class":452},[442,487,459],{"class":452},[442,489,490],{"class":452}," gs:\u002F\u002Fexample-relic-temporary",[442,492,466],{"class":465},[442,494,469],{"class":465},[416,496,497],{},"Leave versioning, soft delete and retention off on the artifacts bucket. This\ncommand turns soft delete off:",[433,499,501],{"className":435,"code":500,"language":437,"meta":438,"style":438},"gcloud storage buckets update gs:\u002F\u002Fexample-relic-artifacts --clear-soft-delete\n",[420,502,503],{"__ignoreMap":438},[442,504,505,507,509,511,514,516],{"class":444,"line":445},[442,506,449],{"class":448},[442,508,453],{"class":452},[442,510,456],{"class":452},[442,512,513],{"class":452}," update",[442,515,462],{"class":452},[442,517,518],{"class":465}," --clear-soft-delete\n",[416,520,521,522,525],{},"Save this one-day expiry rule as ",[420,523,524],{},"temporary-lifecycle.json",":",[433,527,531],{"className":528,"code":529,"language":530,"meta":438,"style":438},"language-json shiki shiki-themes material-theme-lighter github-light-default github-dark-default","{ \"rule\": [ { \"action\": { \"type\": \"Delete\" }, \"condition\": { \"age\": 1 } } ] }\n","json",[420,532,533],{"__ignoreMap":438},[442,534,535,539,543,547,550,552,555,558,560,564,566,568,570,572,576,578,580,583,586,588,591,593,596,598,600,602,604,607,609,611,615,618,620,623],{"class":444,"line":445},[442,536,538],{"class":537},"sWneD","{",[442,540,542],{"class":541},"sK3rv"," \"",[442,544,546],{"class":545},"s10kg","rule",[442,548,549],{"class":541},"\"",[442,551,525],{"class":537},[442,553,554],{"class":537}," [",[442,556,557],{"class":537}," {",[442,559,542],{"class":541},[442,561,563],{"class":562},"st6vK","action",[442,565,549],{"class":541},[442,567,525],{"class":537},[442,569,557],{"class":537},[442,571,542],{"class":541},[442,573,575],{"class":574},"syaID","type",[442,577,549],{"class":541},[442,579,525],{"class":537},[442,581,542],{"class":582},"sX5mu",[442,584,585],{"class":452},"Delete",[442,587,549],{"class":582},[442,589,590],{"class":537}," },",[442,592,542],{"class":541},[442,594,595],{"class":562},"condition",[442,597,549],{"class":541},[442,599,525],{"class":537},[442,601,557],{"class":537},[442,603,542],{"class":541},[442,605,606],{"class":574},"age",[442,608,549],{"class":541},[442,610,525],{"class":537},[442,612,614],{"class":613},"sIO_5"," 1",[442,616,617],{"class":537}," }",[442,619,617],{"class":537},[442,621,622],{"class":537}," ]",[442,624,625],{"class":537}," }\n",[416,627,628],{},"This command applies it to the temporary bucket:",[433,630,632],{"className":435,"code":631,"language":437,"meta":438,"style":438},"gcloud storage buckets update gs:\u002F\u002Fexample-relic-temporary --lifecycle-file=temporary-lifecycle.json\n",[420,633,634],{"__ignoreMap":438},[442,635,636,638,640,642,644,646],{"class":444,"line":445},[442,637,449],{"class":448},[442,639,453],{"class":452},[442,641,456],{"class":452},[442,643,513],{"class":452},[442,645,490],{"class":452},[442,647,648],{"class":465}," --lifecycle-file=temporary-lifecycle.json\n",[425,650,652],{"id":651},"service-account","Service account",[416,654,655,656,525],{},"This command creates the service account ",[420,657,658],{},"relic",[433,660,662],{"className":435,"code":661,"language":437,"meta":438,"style":438},"gcloud iam service-accounts create relic\n",[420,663,664],{"__ignoreMap":438},[442,665,666,668,671,674,676],{"class":444,"line":445},[442,667,449],{"class":448},[442,669,670],{"class":452}," iam",[442,672,673],{"class":452}," service-accounts",[442,675,459],{"class":452},[442,677,678],{"class":452}," relic\n",[416,680,681],{},"This command grants it access to the artifacts bucket:",[433,683,685],{"className":435,"code":684,"language":437,"meta":438,"style":438},"gcloud storage buckets add-iam-policy-binding gs:\u002F\u002Fexample-relic-artifacts \\\n  --member=serviceAccount:relic@\u003Cproject>.iam.gserviceaccount.com --role=roles\u002Fstorage.objectAdmin\n",[420,686,687,704],{"__ignoreMap":438},[442,688,689,691,693,695,698,700],{"class":444,"line":445},[442,690,449],{"class":448},[442,692,453],{"class":452},[442,694,456],{"class":452},[442,696,697],{"class":452}," add-iam-policy-binding",[442,699,462],{"class":452},[442,701,703],{"class":702},"s3oUJ"," \\\n",[442,705,707,710,714,717,720,723],{"class":444,"line":706},2,[442,708,709],{"class":465},"  --member=serviceAccount:relic@",[442,711,713],{"class":712},"s8eFF","\u003C",[442,715,716],{"class":465},"project",[442,718,719],{"class":712},">",[442,721,722],{"class":465},".iam.gserviceaccount.com",[442,724,725],{"class":465}," --role=roles\u002Fstorage.objectAdmin\n",[416,727,728],{},"This command grants access to the temporary bucket:",[433,730,732],{"className":435,"code":731,"language":437,"meta":438,"style":438},"gcloud storage buckets add-iam-policy-binding gs:\u002F\u002Fexample-relic-temporary \\\n  --member=serviceAccount:relic@\u003Cproject>.iam.gserviceaccount.com --role=roles\u002Fstorage.objectAdmin\n",[420,733,734,748],{"__ignoreMap":438},[442,735,736,738,740,742,744,746],{"class":444,"line":445},[442,737,449],{"class":448},[442,739,453],{"class":452},[442,741,456],{"class":452},[442,743,697],{"class":452},[442,745,490],{"class":452},[442,747,703],{"class":702},[442,749,750,752,754,756,758,760],{"class":444,"line":706},[442,751,709],{"class":465},[442,753,713],{"class":712},[442,755,716],{"class":465},[442,757,719],{"class":712},[442,759,722],{"class":465},[442,761,725],{"class":465},[416,763,764],{},"On GKE, this command binds it to Relic's Kubernetes service account:",[433,766,768],{"className":435,"code":767,"language":437,"meta":438,"style":438},"gcloud iam service-accounts add-iam-policy-binding relic@\u003Cproject>.iam.gserviceaccount.com \\\n  --role=roles\u002Fiam.workloadIdentityUser --member=\"serviceAccount:\u003Cproject>.svc.id.goog[relic\u002Frelic]\"\n",[420,769,770,798],{"__ignoreMap":438},[442,771,772,774,776,778,780,783,785,788,792,794,796],{"class":444,"line":445},[442,773,449],{"class":448},[442,775,670],{"class":452},[442,777,673],{"class":452},[442,779,697],{"class":452},[442,781,782],{"class":452}," relic@",[442,784,713],{"class":712},[442,786,787],{"class":452},"projec",[442,789,791],{"class":790},"saDVj","t",[442,793,719],{"class":712},[442,795,722],{"class":452},[442,797,703],{"class":702},[442,799,800,803,806,808,811],{"class":444,"line":706},[442,801,802],{"class":465},"  --role=roles\u002Fiam.workloadIdentityUser",[442,804,805],{"class":465}," --member=",[442,807,549],{"class":582},[442,809,810],{"class":452},"serviceAccount:\u003Cproject>.svc.id.goog[relic\u002Frelic]",[442,812,813],{"class":582},"\"\n",[425,815,817],{"id":816},"settings","Settings",[433,819,823],{"className":820,"code":821,"language":822,"meta":438,"style":438},"language-ini shiki shiki-themes material-theme-lighter github-light-default github-dark-default","RELIC_OBJECT_STORAGE_TYPE=gcs\nRELIC_OBJECT_STORAGE_ARTIFACTS_BUCKET=example-relic-artifacts\nRELIC_OBJECT_STORAGE_TEMPORARY_BUCKET=example-relic-temporary\n","ini",[420,824,825,837,847],{"__ignoreMap":438},[442,826,827,831,834],{"class":444,"line":445},[442,828,830],{"class":829},"s03VG","RELIC_OBJECT_STORAGE_TYPE",[442,832,833],{"class":537},"=",[442,835,836],{"class":790},"gcs\n",[442,838,839,842,844],{"class":444,"line":706},[442,840,841],{"class":829},"RELIC_OBJECT_STORAGE_ARTIFACTS_BUCKET",[442,843,833],{"class":537},[442,845,846],{"class":790},"example-relic-artifacts\n",[442,848,850,853,855],{"class":444,"line":849},3,[442,851,852],{"class":829},"RELIC_OBJECT_STORAGE_TEMPORARY_BUCKET",[442,854,833],{"class":537},[442,856,857],{"class":790},"example-relic-temporary\n",[416,859,860],{},"Helm, with workload identity:",[433,862,866],{"className":863,"code":864,"language":865,"meta":438,"style":438},"language-yaml shiki shiki-themes material-theme-lighter github-light-default github-dark-default","seaweedfs:\n  enabled: false\nserviceAccount:\n  annotations:\n    iam.gke.io\u002Fgcp-service-account: relic@\u003Cproject>.iam.gserviceaccount.com\nobjectStorage:\n  type: gcs\n  defaultCredentials: true\n  artifactsBucket: example-relic-artifacts\n  temporaryBucket: example-relic-temporary\n","yaml",[420,867,868,877,888,895,903,914,922,933,944,955],{"__ignoreMap":438},[442,869,870,874],{"class":444,"line":445},[442,871,873],{"class":872},"smKOL","seaweedfs",[442,875,876],{"class":537},":\n",[442,878,879,882,884],{"class":444,"line":706},[442,880,881],{"class":872},"  enabled",[442,883,525],{"class":537},[442,885,887],{"class":886},"sH4kE"," false\n",[442,889,890,893],{"class":444,"line":849},[442,891,892],{"class":872},"serviceAccount",[442,894,876],{"class":537},[442,896,898,901],{"class":444,"line":897},4,[442,899,900],{"class":872},"  annotations",[442,902,876],{"class":537},[442,904,906,909,911],{"class":444,"line":905},5,[442,907,908],{"class":872},"    iam.gke.io\u002Fgcp-service-account",[442,910,525],{"class":537},[442,912,913],{"class":452}," relic@\u003Cproject>.iam.gserviceaccount.com\n",[442,915,917,920],{"class":444,"line":916},6,[442,918,919],{"class":872},"objectStorage",[442,921,876],{"class":537},[442,923,925,928,930],{"class":444,"line":924},7,[442,926,927],{"class":872},"  type",[442,929,525],{"class":537},[442,931,932],{"class":452}," gcs\n",[442,934,936,939,941],{"class":444,"line":935},8,[442,937,938],{"class":872},"  defaultCredentials",[442,940,525],{"class":537},[442,942,943],{"class":886}," true\n",[442,945,947,950,952],{"class":444,"line":946},9,[442,948,949],{"class":872},"  artifactsBucket",[442,951,525],{"class":537},[442,953,954],{"class":452}," example-relic-artifacts\n",[442,956,958,961,963],{"class":444,"line":957},10,[442,959,960],{"class":872},"  temporaryBucket",[442,962,525],{"class":537},[442,964,965],{"class":452}," example-relic-temporary\n",[416,967,968,971],{},[420,969,970],{},"RELIC_OBJECT_STORAGE_ENDPOINT"," is only for an emulator.",[973,974,975],"style",{},"html pre.shiki code .seIyd, html code.shiki .seIyd{--shiki-light:#E2931D;--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sasMN, html code.shiki .sasMN{--shiki-light:#91B859;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .smky3, html code.shiki .smky3{--shiki-light:#91B859;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sWneD, html code.shiki .sWneD{--shiki-light:#39ADB5;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sK3rv, html code.shiki .sK3rv{--shiki-light:#39ADB5;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .s10kg, html code.shiki .s10kg{--shiki-light:#9C3EDA;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .st6vK, html code.shiki .st6vK{--shiki-light:#E2931D;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .syaID, html code.shiki .syaID{--shiki-light:#F76D47;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sX5mu, html code.shiki .sX5mu{--shiki-light:#39ADB5;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sIO_5, html code.shiki .sIO_5{--shiki-light:#F76D47;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .s3oUJ, html code.shiki .s3oUJ{--shiki-light:#90A4AE;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .s8eFF, html code.shiki .s8eFF{--shiki-light:#39ADB5;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .saDVj, html code.shiki .saDVj{--shiki-light:#90A4AE;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .s03VG, html code.shiki .s03VG{--shiki-light:#E53935;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .smKOL, html code.shiki .smKOL{--shiki-light:#E53935;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sH4kE, html code.shiki .sH4kE{--shiki-light:#FF5370;--shiki-default:#0550AE;--shiki-dark:#79C0FF}",{"title":438,"searchDepth":706,"depth":706,"links":977},[978,979,980],{"id":427,"depth":706,"text":428},{"id":651,"depth":706,"text":652},{"id":816,"depth":706,"text":817},"Google Cloud Storage as object storage, with workload identity or a service account key.","md",null,{},true,{"title":147,"description":981},"1RL-1WxeAhR3Dx3E6ljADPGA52301uoSD1GEvZrvcqU",[989,991],{"title":143,"path":144,"stem":145,"description":990,"children":-1},"A self-hosted MinIO deployment as object storage.",{"title":151,"path":152,"stem":153,"description":992,"children":-1},"Backblaze B2 as object storage, through its S3-compatible API.",1793857350299]