@intentius/chant-lexicon-gcp 0.124.31 → 0.124.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. package/dist/actions/index.js +45 -0
  2. package/dist/api/read-client.js +105 -0
  3. package/dist/codegen/docs-cli.js +6 -0
  4. package/dist/codegen/docs.js +115 -0
  5. package/dist/codegen/generate-cli.js +17 -0
  6. package/dist/codegen/generate.js +218 -0
  7. package/dist/codegen/naming.js +164 -0
  8. package/dist/codegen/package.js +43 -0
  9. package/dist/composites/catalog.d.ts.map +1 -1
  10. package/dist/composites/catalog.js +1251 -0
  11. package/dist/composites/cloud-function.js +65 -0
  12. package/dist/composites/cloud-run-service.d.ts +7 -3
  13. package/dist/composites/cloud-run-service.d.ts.map +1 -1
  14. package/dist/composites/cloud-run-service.js +75 -0
  15. package/dist/composites/cloud-sql-instance.js +85 -0
  16. package/dist/composites/gcs-bucket.js +64 -0
  17. package/dist/composites/gke-cluster.js +113 -0
  18. package/dist/composites/gke-crdb-region.js +137 -0
  19. package/dist/composites/gpu-node-pool.js +74 -0
  20. package/dist/composites/index.js +15 -0
  21. package/dist/composites/landing-zone.js +89 -0
  22. package/dist/composites/managed-certificate.js +46 -0
  23. package/dist/composites/memorystore-redis.js +52 -0
  24. package/dist/composites/multi-region-vpc.js +108 -0
  25. package/dist/composites/private-service.js +50 -0
  26. package/dist/composites/pubsub-pipeline.js +63 -0
  27. package/dist/composites/secure-project.js +85 -0
  28. package/dist/composites/vpc-network.js +113 -0
  29. package/dist/coverage.js +28 -0
  30. package/dist/deep-observe-hooks.js +152 -0
  31. package/dist/deep-observe.js +273 -0
  32. package/dist/default-labels.js +67 -0
  33. package/dist/describe-resources.js +264 -0
  34. package/dist/detect.js +16 -0
  35. package/dist/export-resources.js +59 -0
  36. package/dist/generated/index.d.ts.map +1 -1
  37. package/dist/generated/index.js +1804 -0
  38. package/dist/generated/runtime.js +4 -0
  39. package/dist/governance.js +98 -0
  40. package/dist/health.d.ts +42 -0
  41. package/dist/health.d.ts.map +1 -0
  42. package/dist/health.js +87 -0
  43. package/dist/import/generator.js +68 -0
  44. package/dist/import/live-export.js +73 -0
  45. package/dist/import/parser.js +61 -0
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +38 -0
  49. package/dist/integrity.json +5 -5
  50. package/dist/lint/audit-catalog.js +38 -0
  51. package/dist/lint/audit-lineage.js +63 -0
  52. package/dist/lint/post-synth/gcp-helpers.js +91 -0
  53. package/dist/lint/post-synth/index.js +54 -0
  54. package/dist/lint/post-synth/schema-registry.d.ts.map +1 -1
  55. package/dist/lint/post-synth/schema-registry.js +69 -0
  56. package/dist/lint/post-synth/wgc101.js +47 -0
  57. package/dist/lint/post-synth/wgc102.js +29 -0
  58. package/dist/lint/post-synth/wgc103.js +37 -0
  59. package/dist/lint/post-synth/wgc104.js +34 -0
  60. package/dist/lint/post-synth/wgc105.js +39 -0
  61. package/dist/lint/post-synth/wgc106.js +30 -0
  62. package/dist/lint/post-synth/wgc107.js +33 -0
  63. package/dist/lint/post-synth/wgc108.js +34 -0
  64. package/dist/lint/post-synth/wgc109.js +33 -0
  65. package/dist/lint/post-synth/wgc110.js +32 -0
  66. package/dist/lint/post-synth/wgc111.js +47 -0
  67. package/dist/lint/post-synth/wgc112.js +46 -0
  68. package/dist/lint/post-synth/wgc113.js +35 -0
  69. package/dist/lint/post-synth/wgc201.js +30 -0
  70. package/dist/lint/post-synth/wgc202.js +33 -0
  71. package/dist/lint/post-synth/wgc203.js +35 -0
  72. package/dist/lint/post-synth/wgc204.js +33 -0
  73. package/dist/lint/post-synth/wgc301.js +28 -0
  74. package/dist/lint/post-synth/wgc302.js +28 -0
  75. package/dist/lint/post-synth/wgc303.js +29 -0
  76. package/dist/lint/post-synth/wgc401.js +50 -0
  77. package/dist/lint/post-synth/wgc402.js +46 -0
  78. package/dist/lint/post-synth/wgc403.js +74 -0
  79. package/dist/lint/post-synth/wgc501.js +63 -0
  80. package/dist/lint/post-synth/wgc502.js +37 -0
  81. package/dist/lint/post-synth/wgc503.js +49 -0
  82. package/dist/lint/rules/hardcoded-project.js +51 -0
  83. package/dist/lint/rules/hardcoded-region.js +51 -0
  84. package/dist/lint/rules/index.js +3 -0
  85. package/dist/lint/rules/public-iam.js +37 -0
  86. package/dist/lsp/completions.d.ts.map +1 -1
  87. package/dist/lsp/completions.js +15 -0
  88. package/dist/lsp/hover.d.ts.map +1 -1
  89. package/dist/lsp/hover.js +46 -0
  90. package/dist/manifest.json +1 -1
  91. package/dist/meta.json +1848 -481
  92. package/dist/okf/types/API.md +2 -0
  93. package/dist/okf/types/APIConfig.md +3 -0
  94. package/dist/okf/types/APIQuotaAdjusterSettings.md +2 -0
  95. package/dist/okf/types/APIQuotaPreference.md +2 -0
  96. package/dist/okf/types/AccessBoundaryPolicy.md +2 -0
  97. package/dist/okf/types/AccessLevel.md +2 -0
  98. package/dist/okf/types/AccessLevelCondition.md +1 -0
  99. package/dist/okf/types/AccessPolicy.md +4 -0
  100. package/dist/okf/types/AddonsConfig.md +1 -0
  101. package/dist/okf/types/AgentPool.md +2 -0
  102. package/dist/okf/types/AiplatformModel.md +2 -0
  103. package/dist/okf/types/AistreamsCluster.md +2 -0
  104. package/dist/okf/types/AlertPolicy.md +2 -0
  105. package/dist/okf/types/AlloydbBackup.md +9 -0
  106. package/dist/okf/types/AlloydbCluster.md +5 -0
  107. package/dist/okf/types/AlloydbInstance.md +10 -0
  108. package/dist/okf/types/AnalyticsAccount.md +2 -0
  109. package/dist/okf/types/AndroidApp.md +4 -0
  110. package/dist/okf/types/AnywhereCache.md +2 -0
  111. package/dist/okf/types/ApigatewayGateway.md +3 -0
  112. package/dist/okf/types/ApigeeEnvironment.md +5 -0
  113. package/dist/okf/types/ApigeeInstance.md +2 -0
  114. package/dist/okf/types/ApihubDeployment.md +2 -0
  115. package/dist/okf/types/ApikeysKey.md +2 -0
  116. package/dist/okf/types/AppConnection.md +1 -0
  117. package/dist/okf/types/AppConnector.md +2 -0
  118. package/dist/okf/types/AppGateway.md +3 -0
  119. package/dist/okf/types/AppProfile.md +3 -0
  120. package/dist/okf/types/Application.md +2 -0
  121. package/dist/okf/types/ArtifactRegistryRepository.md +4 -0
  122. package/dist/okf/types/Assignment.md +2 -0
  123. package/dist/okf/types/Attestor.md +2 -0
  124. package/dist/okf/types/AuthorizationPolicy.md +4 -0
  125. package/dist/okf/types/AuthorizedView.md +2 -0
  126. package/dist/okf/types/AutokeyConfig.md +2 -0
  127. package/dist/okf/types/Automation.md +2 -0
  128. package/dist/okf/types/Autoscaler.md +3 -0
  129. package/dist/okf/types/AutoscalingPolicy.md +2 -0
  130. package/dist/okf/types/BQJob.md +3 -0
  131. package/dist/okf/types/BackendBucket.md +3 -0
  132. package/dist/okf/types/BackendBucketSignedURLKey.md +1 -0
  133. package/dist/okf/types/BackendService.md +5 -0
  134. package/dist/okf/types/BackendServiceSignedURLKey.md +1 -0
  135. package/dist/okf/types/BackupPlanAssociation.md +2 -0
  136. package/dist/okf/types/BackupPolicy.md +2 -0
  137. package/dist/okf/types/BackupdrBackupPlan.md +2 -0
  138. package/dist/okf/types/BackupdrBackupVault.md +2 -0
  139. package/dist/okf/types/Batch.md +2 -0
  140. package/dist/okf/types/BatchJob.md +2 -0
  141. package/dist/okf/types/BatchTask.md +3 -0
  142. package/dist/okf/types/BigLakeCatalog.md +2 -0
  143. package/dist/okf/types/BigLakeDatabase.md +2 -0
  144. package/dist/okf/types/BigLakeTable.md +2 -0
  145. package/dist/okf/types/BigQueryDataPolicy.md +2 -0
  146. package/dist/okf/types/BigQueryDataset.md +6 -0
  147. package/dist/okf/types/BigQueryExport.md +2 -0
  148. package/dist/okf/types/BigQueryTable.md +11 -0
  149. package/dist/okf/types/BigqueryconnectionConnection.md +2 -0
  150. package/dist/okf/types/BigquerydatatransferConfig.md +2 -0
  151. package/dist/okf/types/BigqueryreservationReservation.md +2 -0
  152. package/dist/okf/types/BigtableInstance.md +1 -0
  153. package/dist/okf/types/BigtableTable.md +2 -0
  154. package/dist/okf/types/BillingAccount.md +2 -0
  155. package/dist/okf/types/BinaryauthorizationPolicy.md +3 -0
  156. package/dist/okf/types/Brand.md +2 -0
  157. package/dist/okf/types/BtBackup.md +2 -0
  158. package/dist/okf/types/BtCluster.md +2 -0
  159. package/dist/okf/types/Bucket.md +2 -0
  160. package/dist/okf/types/BucketAccessControl.md +3 -0
  161. package/dist/okf/types/Budget.md +2 -0
  162. package/dist/okf/types/CAPool.md +1 -0
  163. package/dist/okf/types/CapacityCommitment.md +5 -0
  164. package/dist/okf/types/CertificateAuthority.md +7 -0
  165. package/dist/okf/types/CertificateIssuanceConfig.md +2 -0
  166. package/dist/okf/types/CertificateMap.md +3 -0
  167. package/dist/okf/types/CertificateMapEntry.md +4 -0
  168. package/dist/okf/types/CertificateTemplate.md +3 -0
  169. package/dist/okf/types/CertificatemanagerCertificate.md +1 -0
  170. package/dist/okf/types/ClientConnectorService.md +2 -0
  171. package/dist/okf/types/ClientTLSPolicy.md +3 -0
  172. package/dist/okf/types/CloudBatchResourceAllowance.md +2 -0
  173. package/dist/okf/types/CloudFunction.md +4 -0
  174. package/dist/okf/types/CloudRunJob.md +13 -0
  175. package/dist/okf/types/CloudRunService.md +13 -0
  176. package/dist/okf/types/CloudbuildTrigger.md +4 -0
  177. package/dist/okf/types/ClouddmsPrivateConnection.md +2 -0
  178. package/dist/okf/types/CloudidentityGroup.md +5 -0
  179. package/dist/okf/types/CloudidentityMembership.md +6 -0
  180. package/dist/okf/types/CloudidsEndpoint.md +1 -0
  181. package/dist/okf/types/CloudschedulerJob.md +5 -0
  182. package/dist/okf/types/ComposerEnvironment.md +2 -0
  183. package/dist/okf/types/ComputeAddress.md +4 -0
  184. package/dist/okf/types/ComputeDisk.md +9 -0
  185. package/dist/okf/types/ComputeFirewallPolicy.md +7 -0
  186. package/dist/okf/types/ComputeHealthCheck.md +4 -0
  187. package/dist/okf/types/ComputeInstance.md +8 -0
  188. package/dist/okf/types/ComputeNetworkPeering.md +3 -0
  189. package/dist/okf/types/ComputeNodeGroup.md +3 -0
  190. package/dist/okf/types/ComputeReservation.md +6 -0
  191. package/dist/okf/types/ComputeRoute.md +3 -0
  192. package/dist/okf/types/ComputeSnapshot.md +7 -0
  193. package/dist/okf/types/ConfigcontrollerInstance.md +3 -0
  194. package/dist/okf/types/ConnectionProfile.md +2 -0
  195. package/dist/okf/types/ConnectivityTest.md +2 -0
  196. package/dist/okf/types/Connector.md +3 -0
  197. package/dist/okf/types/ConsentStore.md +1 -0
  198. package/dist/okf/types/ConsumerGroup.md +2 -0
  199. package/dist/okf/types/ConsumerQuotaOverride.md +2 -0
  200. package/dist/okf/types/Contact.md +2 -0
  201. package/dist/okf/types/ContainerattachedCluster.md +8 -0
  202. package/dist/okf/types/ConversionWorkspace.md +2 -0
  203. package/dist/okf/types/CryptoKeyVersion.md +5 -0
  204. package/dist/okf/types/CustomClass.md +2 -0
  205. package/dist/okf/types/CustomConstraint.md +2 -0
  206. package/dist/okf/types/CustomRole.md +3 -0
  207. package/dist/okf/types/CustomTargetType.md +2 -0
  208. package/dist/okf/types/DICOMStore.md +2 -0
  209. package/dist/okf/types/DNSAuthorization.md +2 -0
  210. package/dist/okf/types/DNSManagedZone.md +3 -0
  211. package/dist/okf/types/DNSRecordSet.md +1 -0
  212. package/dist/okf/types/Dashboard.md +2 -0
  213. package/dist/okf/types/DataExchange.md +2 -0
  214. package/dist/okf/types/DataLabelingJob.md +2 -0
  215. package/dist/okf/types/DataPolicy.md +2 -0
  216. package/dist/okf/types/DataStore.md +2 -0
  217. package/dist/okf/types/DataStoreTargetSite.md +2 -0
  218. package/dist/okf/types/Database.md +2 -0
  219. package/dist/okf/types/DatacatalogEntryGroup.md +2 -0
  220. package/dist/okf/types/DataflowJob.md +4 -0
  221. package/dist/okf/types/DataformRepository.md +2 -0
  222. package/dist/okf/types/DatafusionInstance.md +10 -0
  223. package/dist/okf/types/DataplexEntryGroup.md +2 -0
  224. package/dist/okf/types/DataplexTask.md +2 -0
  225. package/dist/okf/types/DataprocCluster.md +2 -0
  226. package/dist/okf/types/DataprocJob.md +2 -0
  227. package/dist/okf/types/DataprocNodeGroup.md +2 -0
  228. package/dist/okf/types/DataprocSession.md +2 -0
  229. package/dist/okf/types/DatasetAccess.md +2 -0
  230. package/dist/okf/types/DatastoreIndex.md +2 -0
  231. package/dist/okf/types/DatastreamPrivateConnection.md +2 -0
  232. package/dist/okf/types/DatastreamRoute.md +2 -0
  233. package/dist/okf/types/DefaultObjectAccessControl.md +5 -0
  234. package/dist/okf/types/DefaultSupportedIDPConfig.md +2 -0
  235. package/dist/okf/types/DeidentifyTemplate.md +4 -0
  236. package/dist/okf/types/DeliveryPipeline.md +2 -0
  237. package/dist/okf/types/DenyPolicy.md +2 -0
  238. package/dist/okf/types/DeployPolicy.md +2 -0
  239. package/dist/okf/types/DeploymentResourcePool.md +2 -0
  240. package/dist/okf/types/DeploymentmanagerDeployment.md +4 -0
  241. package/dist/okf/types/Device.md +8 -0
  242. package/dist/okf/types/DeviceRegistry.md +1 -0
  243. package/dist/okf/types/DevicestreamingSession.md +2 -0
  244. package/dist/okf/types/DialogflowAgent.md +2 -0
  245. package/dist/okf/types/DialogflowEntityType.md +2 -0
  246. package/dist/okf/types/DialogflowIntent.md +3 -0
  247. package/dist/okf/types/DialogflowcxAgent.md +3 -0
  248. package/dist/okf/types/DialogflowcxEntityType.md +2 -0
  249. package/dist/okf/types/DialogflowcxIntent.md +2 -0
  250. package/dist/okf/types/DiscoveredService.md +2 -0
  251. package/dist/okf/types/DiscoveredWorkload.md +2 -0
  252. package/dist/okf/types/DiskResourcePolicyAttachment.md +1 -0
  253. package/dist/okf/types/DnsPolicy.md +1 -0
  254. package/dist/okf/types/Document.md +2 -0
  255. package/dist/okf/types/DomainMapping.md +2 -0
  256. package/dist/okf/types/EdgeCacheKeyset.md +1 -0
  257. package/dist/okf/types/EdgeCacheOrigin.md +1 -0
  258. package/dist/okf/types/EdgeCacheService.md +1 -0
  259. package/dist/okf/types/EdgecontainerCluster.md +9 -0
  260. package/dist/okf/types/EdgecontainerNodePool.md +4 -0
  261. package/dist/okf/types/EdgenetworkNetwork.md +4 -0
  262. package/dist/okf/types/EndpointAttachment.md +2 -0
  263. package/dist/okf/types/EndpointPolicy.md +3 -0
  264. package/dist/okf/types/Engine.md +2 -0
  265. package/dist/okf/types/Enrollment.md +2 -0
  266. package/dist/okf/types/Entitlement.md +2 -0
  267. package/dist/okf/types/Entry.md +2 -0
  268. package/dist/okf/types/EntryType.md +2 -0
  269. package/dist/okf/types/Envgroup.md +2 -0
  270. package/dist/okf/types/EnvgroupAttachment.md +2 -0
  271. package/dist/okf/types/EventarcChannel.md +2 -0
  272. package/dist/okf/types/EventarcTrigger.md +5 -0
  273. package/dist/okf/types/ExampleStore.md +2 -0
  274. package/dist/okf/types/ExternalAccessRule.md +2 -0
  275. package/dist/okf/types/ExternalAddress.md +2 -0
  276. package/dist/okf/types/ExternalVPNGateway.md +3 -0
  277. package/dist/okf/types/FHIRStore.md +2 -0
  278. package/dist/okf/types/Feature.md +4 -0
  279. package/dist/okf/types/FeatureMembership.md +1 -0
  280. package/dist/okf/types/Featurestore.md +2 -0
  281. package/dist/okf/types/FeaturestoreEntityType.md +5 -0
  282. package/dist/okf/types/FeaturestoreEntityTypeFeature.md +5 -0
  283. package/dist/okf/types/Federation.md +2 -0
  284. package/dist/okf/types/Feed.md +2 -0
  285. package/dist/okf/types/Field.md +2 -0
  286. package/dist/okf/types/FilestoreBackup.md +7 -0
  287. package/dist/okf/types/FilestoreInstance.md +5 -0
  288. package/dist/okf/types/FilestoreSnapshot.md +4 -0
  289. package/dist/okf/types/FirebaseProject.md +3 -0
  290. package/dist/okf/types/FirebasedatabaseInstance.md +4 -0
  291. package/dist/okf/types/FirebasehostingChannel.md +2 -0
  292. package/dist/okf/types/FirestoreBackupSchedule.md +2 -0
  293. package/dist/okf/types/FirestoreIndex.md +2 -0
  294. package/dist/okf/types/Firewall.md +3 -0
  295. package/dist/okf/types/FirewallPolicyAssociation.md +2 -0
  296. package/dist/okf/types/FirewallPolicyRule.md +4 -0
  297. package/dist/okf/types/FirewallRule.md +1 -0
  298. package/dist/okf/types/FlexTemplateJob.md +4 -0
  299. package/dist/okf/types/FlexibleAppVersion.md +2 -0
  300. package/dist/okf/types/Flow.md +2 -0
  301. package/dist/okf/types/FolderFeed.md +3 -0
  302. package/dist/okf/types/ForwardingRule.md +10 -0
  303. package/dist/okf/types/Fulfillment.md +2 -0
  304. package/dist/okf/types/Function.md +5 -0
  305. package/dist/okf/types/FutureReservation.md +2 -0
  306. package/dist/okf/types/GCPServiceAccount.md +5 -0
  307. package/dist/okf/types/GCPUserAccessBinding.md +2 -0
  308. package/dist/okf/types/GCPolicy.md +1 -0
  309. package/dist/okf/types/GKECluster.md +8 -0
  310. package/dist/okf/types/GRPCRoute.md +4 -0
  311. package/dist/okf/types/GcsFolder.md +2 -0
  312. package/dist/okf/types/GkebackupBackup.md +2 -0
  313. package/dist/okf/types/GkebackupBackupPlan.md +2 -0
  314. package/dist/okf/types/GkehubMembership.md +6 -0
  315. package/dist/okf/types/GkehubNamespace.md +2 -0
  316. package/dist/okf/types/GlobalNetworkEndpoint.md +1 -0
  317. package/dist/okf/types/GlobalNetworkEndpointGroup.md +2 -0
  318. package/dist/okf/types/GoogleChannelConfig.md +2 -0
  319. package/dist/okf/types/GuestPolicy.md +4 -0
  320. package/dist/okf/types/HL7V2Store.md +2 -0
  321. package/dist/okf/types/HMACKey.md +5 -0
  322. package/dist/okf/types/HTTPHealthCheck.md +3 -0
  323. package/dist/okf/types/HTTPRoute.md +4 -0
  324. package/dist/okf/types/HTTPSHealthCheck.md +3 -0
  325. package/dist/okf/types/HealthcareDataset.md +2 -0
  326. package/dist/okf/types/Hub.md +5 -0
  327. package/dist/okf/types/IAMAuditConfig.md +1 -0
  328. package/dist/okf/types/IAMPolicy.md +1 -0
  329. package/dist/okf/types/IAMPolicyMember.md +1 -0
  330. package/dist/okf/types/IdentityAwareProxyClient.md +2 -0
  331. package/dist/okf/types/IdentityplatformConfig.md +2 -0
  332. package/dist/okf/types/Image.md +5 -0
  333. package/dist/okf/types/ImportJob.md +2 -0
  334. package/dist/okf/types/InboundSAMLConfig.md +1 -0
  335. package/dist/okf/types/IndexEndpoint.md +6 -0
  336. package/dist/okf/types/InspectTemplate.md +4 -0
  337. package/dist/okf/types/InstanceAttachment.md +2 -0
  338. package/dist/okf/types/InstanceConfig.md +2 -0
  339. package/dist/okf/types/InstanceEndpoint.md +1 -0
  340. package/dist/okf/types/InstanceGroup.md +3 -0
  341. package/dist/okf/types/InstanceGroupManager.md +8 -0
  342. package/dist/okf/types/InstanceGroupNamedPort.md +1 -0
  343. package/dist/okf/types/InstanceTemplate.md +5 -0
  344. package/dist/okf/types/InterceptDeployment.md +2 -0
  345. package/dist/okf/types/InterceptEndpointGroup.md +2 -0
  346. package/dist/okf/types/Interconnect.md +2 -0
  347. package/dist/okf/types/InterconnectAttachment.md +9 -0
  348. package/dist/okf/types/InternalRange.md +2 -0
  349. package/dist/okf/types/JobTrigger.md +5 -0
  350. package/dist/okf/types/KMSCryptoKey.md +2 -0
  351. package/dist/okf/types/KMSKeyRing.md +2 -0
  352. package/dist/okf/types/KeyHandle.md +2 -0
  353. package/dist/okf/types/KeyRingImportJob.md +4 -0
  354. package/dist/okf/types/LBRouteExtension.md +2 -0
  355. package/dist/okf/types/Lake.md +2 -0
  356. package/dist/okf/types/Lien.md +3 -0
  357. package/dist/okf/types/Link.md +2 -0
  358. package/dist/okf/types/Listing.md +2 -0
  359. package/dist/okf/types/LocationTagBinding.md +3 -0
  360. package/dist/okf/types/LogBucket.md +4 -0
  361. package/dist/okf/types/LogExclusion.md +3 -0
  362. package/dist/okf/types/LogMetric.md +3 -0
  363. package/dist/okf/types/LogSink.md +2 -0
  364. package/dist/okf/types/LogView.md +3 -0
  365. package/dist/okf/types/LogicalView.md +3 -0
  366. package/dist/okf/types/Machine.md +2 -0
  367. package/dist/okf/types/MachineImage.md +2 -0
  368. package/dist/okf/types/ManagedFolder.md +2 -0
  369. package/dist/okf/types/ManagedSSLCertificate.md +1 -0
  370. package/dist/okf/types/ManagedkafkaCluster.md +2 -0
  371. package/dist/okf/types/ManagedkafkaTopic.md +2 -0
  372. package/dist/okf/types/ManagementServer.md +2 -0
  373. package/dist/okf/types/MaterializedView.md +3 -0
  374. package/dist/okf/types/MembershipBinding.md +2 -0
  375. package/dist/okf/types/MemcacheInstance.md +4 -0
  376. package/dist/okf/types/MemorystoreInstance.md +2 -0
  377. package/dist/okf/types/Mesh.md +4 -0
  378. package/dist/okf/types/MetadataStore.md +2 -0
  379. package/dist/okf/types/MetastoreBackup.md +2 -0
  380. package/dist/okf/types/MetastoreService.md +2 -0
  381. package/dist/okf/types/MetricDescriptor.md +2 -0
  382. package/dist/okf/types/MigrationJob.md +2 -0
  383. package/dist/okf/types/MlengineModel.md +1 -0
  384. package/dist/okf/types/MonGroup.md +1 -0
  385. package/dist/okf/types/MonService.md +1 -0
  386. package/dist/okf/types/MonitoredProject.md +2 -0
  387. package/dist/okf/types/MuteConfig.md +2 -0
  388. package/dist/okf/types/NATAddress.md +3 -0
  389. package/dist/okf/types/NetappBackupVault.md +2 -0
  390. package/dist/okf/types/NetworkAttachment.md +2 -0
  391. package/dist/okf/types/NetworkEdgeSecurityService.md +2 -0
  392. package/dist/okf/types/NetworkEndpoint.md +1 -0
  393. package/dist/okf/types/NetworkEndpointGroup.md +3 -0
  394. package/dist/okf/types/NetworkFirewallPolicy.md +7 -0
  395. package/dist/okf/types/NetworkFirewallPolicyAssociation.md +2 -0
  396. package/dist/okf/types/NetworkFirewallPolicyRule.md +3 -0
  397. package/dist/okf/types/NetworkPeeringRoutesConfig.md +1 -0
  398. package/dist/okf/types/NetworkPolicy.md +2 -0
  399. package/dist/okf/types/NetworkservicesGateway.md +4 -0
  400. package/dist/okf/types/Node.md +2 -0
  401. package/dist/okf/types/NodePool.md +2 -0
  402. package/dist/okf/types/NodeTemplate.md +4 -0
  403. package/dist/okf/types/Note.md +3 -0
  404. package/dist/okf/types/NotebookInstance.md +2 -0
  405. package/dist/okf/types/NotebooksEnvironment.md +2 -0
  406. package/dist/okf/types/Notification.md +3 -0
  407. package/dist/okf/types/NotificationChannel.md +3 -0
  408. package/dist/okf/types/NotificationConfig.md +3 -0
  409. package/dist/okf/types/OAuthIDPConfig.md +1 -0
  410. package/dist/okf/types/OSPolicyAssignment.md +9 -0
  411. package/dist/okf/types/Occurrence.md +5 -0
  412. package/dist/okf/types/Organization.md +10 -0
  413. package/dist/okf/types/OrganizationFeed.md +2 -0
  414. package/dist/okf/types/OrganizationSecurityPolicy.md +3 -0
  415. package/dist/okf/types/OrganizationSecurityPolicyAssociation.md +2 -0
  416. package/dist/okf/types/OrganizationSecurityPolicyRule.md +1 -0
  417. package/dist/okf/types/OrgpolicyPolicy.md +2 -0
  418. package/dist/okf/types/PacketMirroring.md +4 -0
  419. package/dist/okf/types/Page.md +2 -0
  420. package/dist/okf/types/Parameter.md +2 -0
  421. package/dist/okf/types/ParameterVersion.md +2 -0
  422. package/dist/okf/types/PartialPolicy.md +1 -0
  423. package/dist/okf/types/PatchDeployment.md +5 -0
  424. package/dist/okf/types/PeeredDNSDomain.md +2 -0
  425. package/dist/okf/types/PerInstanceConfig.md +1 -0
  426. package/dist/okf/types/PhraseSet.md +2 -0
  427. package/dist/okf/types/PlatformPolicy.md +2 -0
  428. package/dist/okf/types/PolicyTag.md +3 -0
  429. package/dist/okf/types/PrivateCloud.md +2 -0
  430. package/dist/okf/types/PrivatecaCertificate.md +5 -0
  431. package/dist/okf/types/Processor.md +2 -0
  432. package/dist/okf/types/ProcessorDefaultVersion.md +1 -0
  433. package/dist/okf/types/ProcessorVersion.md +2 -0
  434. package/dist/okf/types/ProjectDefaultConfig.md +2 -0
  435. package/dist/okf/types/ProjectFeed.md +2 -0
  436. package/dist/okf/types/ProjectMetadata.md +1 -0
  437. package/dist/okf/types/PubSubSnapshot.md +2 -0
  438. package/dist/okf/types/PubSubSubscription.md +1 -0
  439. package/dist/okf/types/PubSubTopic.md +1 -0
  440. package/dist/okf/types/PubsubliteReservation.md +1 -0
  441. package/dist/okf/types/PubsubliteTopic.md +1 -0
  442. package/dist/okf/types/RecaptchaenterpriseFirewallPolicy.md +2 -0
  443. package/dist/okf/types/RecaptchaenterpriseKey.md +2 -0
  444. package/dist/okf/types/Recognizer.md +2 -0
  445. package/dist/okf/types/RedisCluster.md +2 -0
  446. package/dist/okf/types/RedisInstance.md +8 -0
  447. package/dist/okf/types/RegionAutoscaler.md +3 -0
  448. package/dist/okf/types/RegionDiskResourcePolicyAttachment.md +1 -0
  449. package/dist/okf/types/RegionNetworkEndpointGroup.md +2 -0
  450. package/dist/okf/types/RegionPerInstanceConfig.md +1 -0
  451. package/dist/okf/types/RegionSSLPolicy.md +4 -0
  452. package/dist/okf/types/RegionalEndpoint.md +2 -0
  453. package/dist/okf/types/ResourceBundle.md +2 -0
  454. package/dist/okf/types/ResourcePolicy.md +3 -0
  455. package/dist/okf/types/ResourcemanagerFolder.md +5 -0
  456. package/dist/okf/types/ResourcemanagerPolicy.md +3 -0
  457. package/dist/okf/types/ResourcemanagerProject.md +2 -0
  458. package/dist/okf/types/ResponsePolicy.md +1 -0
  459. package/dist/okf/types/ResponsePolicyRule.md +1 -0
  460. package/dist/okf/types/Restore.md +2 -0
  461. package/dist/okf/types/RestorePlan.md +2 -0
  462. package/dist/okf/types/Router.md +3 -0
  463. package/dist/okf/types/RouterInterface.md +1 -0
  464. package/dist/okf/types/RouterNAT.md +1 -0
  465. package/dist/okf/types/RouterPeer.md +2 -0
  466. package/dist/okf/types/Routine.md +3 -0
  467. package/dist/okf/types/Runtime.md +2 -0
  468. package/dist/okf/types/RuntimeTemplate.md +2 -0
  469. package/dist/okf/types/SQLDatabase.md +2 -0
  470. package/dist/okf/types/SQLInstance.md +10 -0
  471. package/dist/okf/types/SQLUser.md +1 -0
  472. package/dist/okf/types/SSHPublicKey.md +2 -0
  473. package/dist/okf/types/SSLCert.md +8 -0
  474. package/dist/okf/types/SSLCertificate.md +5 -0
  475. package/dist/okf/types/SSLPolicy.md +4 -0
  476. package/dist/okf/types/SavedQuery.md +2 -0
  477. package/dist/okf/types/Schema.md +1 -0
  478. package/dist/okf/types/Scope.md +5 -0
  479. package/dist/okf/types/ScopeRBACRoleBinding.md +2 -0
  480. package/dist/okf/types/SecretCiphertext.md +2 -0
  481. package/dist/okf/types/SecretManagerSecret.md +3 -0
  482. package/dist/okf/types/SecretManagerSecretVersion.md +6 -0
  483. package/dist/okf/types/SecuresourcemanagerInstance.md +2 -0
  484. package/dist/okf/types/SecuresourcemanagerRepository.md +2 -0
  485. package/dist/okf/types/SecurityPolicy.md +3 -0
  486. package/dist/okf/types/ServerTLSPolicy.md +3 -0
  487. package/dist/okf/types/ServiceAccountKey.md +6 -0
  488. package/dist/okf/types/ServiceAttachment.md +5 -0
  489. package/dist/okf/types/ServiceBinding.md +2 -0
  490. package/dist/okf/types/ServiceConnectionPolicy.md +2 -0
  491. package/dist/okf/types/ServiceIdentity.md +2 -0
  492. package/dist/okf/types/ServiceLevelObjective.md +4 -0
  493. package/dist/okf/types/ServicePerimeter.md +4 -0
  494. package/dist/okf/types/ServicePerimeterResource.md +1 -0
  495. package/dist/okf/types/ServiceProjectAttachment.md +2 -0
  496. package/dist/okf/types/ServiceSplitTraffic.md +1 -0
  497. package/dist/okf/types/ServicedirectoryEndpoint.md +2 -0
  498. package/dist/okf/types/ServicedirectoryNamespace.md +2 -0
  499. package/dist/okf/types/ServicedirectoryService.md +2 -0
  500. package/dist/okf/types/ServicenetworkingConnection.md +2 -0
  501. package/dist/okf/types/ServiceusageService.md +1 -0
  502. package/dist/okf/types/Settings.md +2 -0
  503. package/dist/okf/types/SharedVPCHostProject.md +1 -0
  504. package/dist/okf/types/SharedVPCServiceProject.md +1 -0
  505. package/dist/okf/types/Site.md +3 -0
  506. package/dist/okf/types/Source.md +2 -0
  507. package/dist/okf/types/SourcerepoRepository.md +3 -0
  508. package/dist/okf/types/SpannerBackupSchedule.md +2 -0
  509. package/dist/okf/types/SpannerDatabase.md +2 -0
  510. package/dist/okf/types/SpannerInstance.md +3 -0
  511. package/dist/okf/types/Spoke.md +5 -0
  512. package/dist/okf/types/StandardAppVersion.md +2 -0
  513. package/dist/okf/types/StorageBucket.md +3 -0
  514. package/dist/okf/types/StoragetransferJob.md +5 -0
  515. package/dist/okf/types/StoredInfoType.md +1 -0
  516. package/dist/okf/types/Stream.md +3 -0
  517. package/dist/okf/types/Subnet.md +5 -0
  518. package/dist/okf/types/Subnetwork.md +8 -0
  519. package/dist/okf/types/Subscription.md +1 -0
  520. package/dist/okf/types/SyncAuthorization.md +2 -0
  521. package/dist/okf/types/TCPRoute.md +4 -0
  522. package/dist/okf/types/TLSRoute.md +4 -0
  523. package/dist/okf/types/Tag.md +2 -0
  524. package/dist/okf/types/TagBinding.md +3 -0
  525. package/dist/okf/types/TagKey.md +6 -0
  526. package/dist/okf/types/TagTemplate.md +2 -0
  527. package/dist/okf/types/TagValue.md +6 -0
  528. package/dist/okf/types/Target.md +2 -0
  529. package/dist/okf/types/TargetGRPCProxy.md +5 -0
  530. package/dist/okf/types/TargetHTTPProxy.md +4 -0
  531. package/dist/okf/types/TargetHTTPSProxy.md +5 -0
  532. package/dist/okf/types/TargetInstance.md +3 -0
  533. package/dist/okf/types/TargetPool.md +2 -0
  534. package/dist/okf/types/TargetSSLProxy.md +4 -0
  535. package/dist/okf/types/TargetTCPProxy.md +5 -0
  536. package/dist/okf/types/TargetVPNGateway.md +4 -0
  537. package/dist/okf/types/TasksQueue.md +2 -0
  538. package/dist/okf/types/Taxonomy.md +3 -0
  539. package/dist/okf/types/Tenant.md +1 -0
  540. package/dist/okf/types/TenantDefaultSupportedIDPConfig.md +2 -0
  541. package/dist/okf/types/TenantInboundSAMLConfig.md +1 -0
  542. package/dist/okf/types/TenantOAuthIDPConfig.md +1 -0
  543. package/dist/okf/types/Tensorboard.md +6 -0
  544. package/dist/okf/types/URLMap.md +5 -0
  545. package/dist/okf/types/UptimeCheckConfig.md +1 -0
  546. package/dist/okf/types/User.md +2 -0
  547. package/dist/okf/types/VPCNetwork.md +3 -0
  548. package/dist/okf/types/VPNGateway.md +2 -0
  549. package/dist/okf/types/VPNTunnel.md +7 -0
  550. package/dist/okf/types/VertexaiDataset.md +1 -0
  551. package/dist/okf/types/VertexaiEndpoint.md +1 -0
  552. package/dist/okf/types/VertexaiIndex.md +1 -0
  553. package/dist/okf/types/VirtualMachine.md +2 -0
  554. package/dist/okf/types/VmwareengineNetwork.md +2 -0
  555. package/dist/okf/types/VmwareengineNetworkPeering.md +2 -0
  556. package/dist/okf/types/VpnConnection.md +3 -0
  557. package/dist/okf/types/WasmPlugin.md +2 -0
  558. package/dist/okf/types/WebApp.md +3 -0
  559. package/dist/okf/types/Webhook.md +3 -0
  560. package/dist/okf/types/WorkerPool.md +2 -0
  561. package/dist/okf/types/Workflow.md +2 -0
  562. package/dist/okf/types/WorkflowTemplate.md +4 -0
  563. package/dist/okf/types/WorkflowsExecution.md +2 -0
  564. package/dist/okf/types/WorkforcePool.md +3 -0
  565. package/dist/okf/types/WorkforcePoolProvider.md +2 -0
  566. package/dist/okf/types/Workload.md +2 -0
  567. package/dist/okf/types/WorkloadIdentityPool.md +2 -0
  568. package/dist/okf/types/WorkloadIdentityPoolProvider.md +2 -0
  569. package/dist/okf/types/Workstation.md +2 -0
  570. package/dist/okf/types/WorkstationCluster.md +2 -0
  571. package/dist/okf/types/WorkstationConfig.md +2 -0
  572. package/dist/okf/types/Zone.md +2 -0
  573. package/dist/op/activities/floci-gcp.js +49 -0
  574. package/dist/op/activities/gcp-apply.js +618 -0
  575. package/dist/op/activities/index.js +10 -0
  576. package/dist/op/builders.js +50 -0
  577. package/dist/ownership.js +38 -0
  578. package/dist/package-cli.js +20 -0
  579. package/dist/plugin.d.ts.map +1 -1
  580. package/dist/plugin.js +377 -0
  581. package/dist/pseudo.js +15 -0
  582. package/dist/rules/schema-registry.ts +2 -1
  583. package/dist/serializer.d.ts.map +1 -1
  584. package/dist/serializer.js +247 -0
  585. package/dist/spec/fetch.js +107 -0
  586. package/dist/spec/parse.d.ts +1 -1
  587. package/dist/spec/parse.js +339 -0
  588. package/dist/types/index.d.ts +1367 -0
  589. package/dist/validate-cli.js +11 -0
  590. package/dist/validate.js +24 -0
  591. package/dist/variables.js +15 -0
  592. package/package.json +8 -8
  593. package/src/attributes.test.ts +16 -0
  594. package/src/codegen/generate.ts +8 -3
  595. package/src/codegen/package.ts +2 -2
  596. package/src/composites/catalog.ts +7 -1
  597. package/src/composites/cloud-run-service.ts +12 -5
  598. package/src/composites/composites.test.ts +17 -0
  599. package/src/generated/index.d.ts +1367 -0
  600. package/src/generated/index.ts +487 -487
  601. package/src/generated/lexicon-gcp.json +1848 -481
  602. package/src/health.test.ts +59 -0
  603. package/src/health.ts +123 -0
  604. package/src/index.ts +3 -0
  605. package/src/lint/post-synth/schema-registry.ts +2 -1
  606. package/src/lsp/completions.ts +2 -1
  607. package/src/lsp/hover.ts +2 -1
  608. package/src/plugin.ts +8 -0
  609. package/src/serializer-outputs.test.ts +26 -0
  610. package/src/serializer.ts +21 -3
  611. package/src/spec/parse.test.ts +42 -2
  612. package/src/spec/parse.ts +17 -1
@@ -0,0 +1,65 @@
1
+ /**
2
+ * CloudFunctionWithTrigger composite — CloudFunction + source bucket + optional PubSub/HTTP trigger + invoker IAM.
3
+ */
4
+ import { Composite, mergeDefaults } from "@intentius/chant";
5
+ import { CloudFunction as CloudFunctionResource, StorageBucket, IAMPolicyMember, } from "../generated/index.js";
6
+ export const CloudFunctionWithTrigger = Composite((props) => {
7
+ const { name, runtime, entryPoint, region, availableMemoryMb = "256M", timeout = 60, triggerType = "http", triggerTopic, publicAccess = false, environmentVariables, labels: extraLabels = {}, namespace, defaults: defs, } = props;
8
+ const commonLabels = {
9
+ "app.kubernetes.io/name": name,
10
+ "app.kubernetes.io/managed-by": "chant",
11
+ ...extraLabels,
12
+ };
13
+ const sourceBucket = new StorageBucket(mergeDefaults({
14
+ metadata: {
15
+ name: `${name}-source`,
16
+ ...(namespace && { namespace }),
17
+ labels: { ...commonLabels, "app.kubernetes.io/component": "source" },
18
+ },
19
+ location: region ?? "US",
20
+ uniformBucketLevelAccess: true,
21
+ }, defs?.sourceBucket));
22
+ const eventTrigger = triggerType === "pubsub" && triggerTopic
23
+ ? { eventType: "google.cloud.pubsub.topic.v1.messagePublished", pubsubTopic: triggerTopic }
24
+ : undefined;
25
+ const fn = new CloudFunctionResource(mergeDefaults({
26
+ metadata: {
27
+ name,
28
+ ...(namespace && { namespace }),
29
+ labels: { ...commonLabels, "app.kubernetes.io/component": "function" },
30
+ },
31
+ ...(region && { location: region }),
32
+ runtime,
33
+ entryPoint,
34
+ availableMemoryMb,
35
+ timeout: `${timeout}s`,
36
+ buildConfig: {
37
+ sourceRef: {
38
+ storageBucketRef: { name: `${name}-source` },
39
+ },
40
+ },
41
+ ...(eventTrigger && { eventTrigger }),
42
+ ...(environmentVariables && { environmentVariables }),
43
+ }, defs?.function));
44
+ const result = {
45
+ function: fn,
46
+ sourceBucket,
47
+ };
48
+ if (publicAccess && triggerType === "http") {
49
+ result.invokerIam = new IAMPolicyMember(mergeDefaults({
50
+ metadata: {
51
+ name: `${name}-invoker`,
52
+ ...(namespace && { namespace }),
53
+ labels: { ...commonLabels, "app.kubernetes.io/component": "iam" },
54
+ },
55
+ member: "allUsers",
56
+ role: "roles/cloudfunctions.invoker",
57
+ resourceRef: {
58
+ apiVersion: "cloudfunctions.cnrm.cloud.google.com/v1beta1",
59
+ kind: "CloudFunctionsFunction",
60
+ name,
61
+ },
62
+ }, defs?.invokerIam));
63
+ }
64
+ return result;
65
+ }, "CloudFunctionWithTrigger");
@@ -7,8 +7,10 @@ export interface CloudRunServiceProps {
7
7
  name: string;
8
8
  /** Container image. */
9
9
  image: string;
10
- /** GCP region. */
10
+ /** GCP region (default: GCP.Region, resolved from GCP_REGION at build). */
11
11
  location?: string;
12
+ /** GCP project the service runs in, as `projectRef.external` (default: GCP.ProjectId, resolved from GCP_PROJECT_ID at build). */
13
+ projectId?: string;
12
14
  /** Port the container listens on (default: 8080). */
13
15
  port?: number;
14
16
  /** CPU limit (default: "1000m"). */
@@ -43,10 +45,12 @@ export interface CloudRunServiceProps {
43
45
  *
44
46
  * @example
45
47
  * ```ts
46
- * import { CloudRunService } from "@intentius/chant-lexicon-gcp";
48
+ * import { CloudRunServiceComposite } from "@intentius/chant-lexicon-gcp";
47
49
  *
48
- * const { service, publicIam } = CloudRunService({
50
+ * const { service, publicIam } = CloudRunServiceComposite({
49
51
  * name: "my-api",
52
+ * projectId: "my-project",
53
+ * location: "us-central1",
50
54
  * image: "gcr.io/my-project/my-api:latest",
51
55
  * publicAccess: true,
52
56
  * });
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-run-service.d.ts","sourceRoot":"","sources":["../../src/composites/cloud-run-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,eAAe,IAAI,uBAAuB,EAC1C,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,2FAwEP,CAAC"}
1
+ {"version":3,"file":"cloud-run-service.d.ts","sourceRoot":"","sources":["../../src/composites/cloud-run-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,eAAe,IAAI,uBAAuB,EAC1C,eAAe,EAChB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iIAAiI;IACjI,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,2FA0EP,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * CloudRunServiceComposite composite — RunService + optional IAMPolicyMember for public access.
3
+ */
4
+ import { Composite, mergeDefaults } from "@intentius/chant";
5
+ import { CloudRunService as CloudRunServiceResource, IAMPolicyMember, } from "../generated/index.js";
6
+ import { GCP } from "../pseudo.js";
7
+ /**
8
+ * Create a CloudRunService composite.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { CloudRunServiceComposite } from "@intentius/chant-lexicon-gcp";
13
+ *
14
+ * const { service, publicIam } = CloudRunServiceComposite({
15
+ * name: "my-api",
16
+ * projectId: "my-project",
17
+ * location: "us-central1",
18
+ * image: "gcr.io/my-project/my-api:latest",
19
+ * publicAccess: true,
20
+ * });
21
+ * ```
22
+ */
23
+ export const CloudRunServiceComposite = Composite((props) => {
24
+ const { name, image, location, projectId, port = 8080, cpuLimit = "1000m", memoryLimit = "512Mi", maxInstanceRequestConcurrency = 80, minInstanceCount = 0, maxInstanceCount = 100, publicAccess = false, env, labels: extraLabels = {}, namespace, defaults: defs, } = props;
25
+ const commonLabels = {
26
+ "app.kubernetes.io/name": name,
27
+ "app.kubernetes.io/managed-by": "chant",
28
+ ...extraLabels,
29
+ };
30
+ const containers = [
31
+ {
32
+ image,
33
+ ports: [{ containerPort: port, name: "http1" }],
34
+ resources: {
35
+ limits: { cpu: cpuLimit, memory: memoryLimit },
36
+ },
37
+ ...(env && env.length > 0 && { env }),
38
+ },
39
+ ];
40
+ const service = new CloudRunServiceResource(mergeDefaults({
41
+ metadata: {
42
+ name,
43
+ ...(namespace && { namespace }),
44
+ labels: { ...commonLabels, "app.kubernetes.io/component": "service" },
45
+ },
46
+ location: location ?? GCP.Region,
47
+ projectRef: { external: projectId ?? GCP.ProjectId },
48
+ template: {
49
+ maxInstanceRequestConcurrency,
50
+ scaling: {
51
+ minInstanceCount,
52
+ maxInstanceCount,
53
+ },
54
+ containers,
55
+ },
56
+ }, defs?.service));
57
+ const result = { service };
58
+ if (publicAccess) {
59
+ result.publicIam = new IAMPolicyMember(mergeDefaults({
60
+ metadata: {
61
+ name: `${name}-public`,
62
+ ...(namespace && { namespace }),
63
+ labels: { ...commonLabels, "app.kubernetes.io/component": "iam" },
64
+ },
65
+ member: "allUsers",
66
+ role: "roles/run.invoker",
67
+ resourceRef: {
68
+ apiVersion: "run.cnrm.cloud.google.com/v1beta1",
69
+ kind: "RunService",
70
+ name,
71
+ },
72
+ }, defs?.publicIam));
73
+ }
74
+ return result;
75
+ }, "CloudRunServiceComposite");
@@ -0,0 +1,85 @@
1
+ /**
2
+ * CloudSqlInstance composite — SQLInstance + SQLDatabase + SQLUser.
3
+ */
4
+ import { Composite, mergeDefaults } from "@intentius/chant";
5
+ import { SQLInstance, SQLDatabase, SQLUser } from "../generated/index.js";
6
+ /**
7
+ * Create a CloudSqlInstance composite.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { CloudSqlInstance } from "@intentius/chant-lexicon-gcp";
12
+ *
13
+ * const { instance, database, user } = CloudSqlInstance({
14
+ * name: "my-db",
15
+ * databaseVersion: "POSTGRES_15",
16
+ * tier: "db-custom-2-7680",
17
+ * });
18
+ * ```
19
+ */
20
+ export const CloudSqlInstance = Composite((props) => {
21
+ const { name, databaseVersion = "POSTGRES_15", tier = "db-f1-micro", region, databaseName = name, userName = "admin", diskSize = 10, diskAutoresize = true, backupEnabled = true, highAvailability = false, labels: extraLabels = {}, namespace, defaults: defs, } = props;
22
+ // K8s metadata name must be a valid DNS subdomain (no underscores).
23
+ // When databaseName differs from the instance name, prefix with instance name
24
+ // to guarantee uniqueness across instances sharing the same databaseName.
25
+ const sanitizedDbName = databaseName.replace(/_/g, "-");
26
+ const databaseK8sName = databaseName === name ? sanitizedDbName : `${name}-${sanitizedDbName}`;
27
+ const commonLabels = {
28
+ "app.kubernetes.io/name": name,
29
+ "app.kubernetes.io/managed-by": "chant",
30
+ ...extraLabels,
31
+ };
32
+ const settings = {
33
+ tier,
34
+ diskSize,
35
+ diskAutoresize,
36
+ ...(highAvailability && { availabilityType: "REGIONAL" }),
37
+ };
38
+ if (backupEnabled) {
39
+ settings.backupConfiguration = {
40
+ enabled: true,
41
+ startTime: "03:00",
42
+ };
43
+ }
44
+ const instance = new SQLInstance(mergeDefaults({
45
+ metadata: {
46
+ name,
47
+ ...(namespace && { namespace }),
48
+ labels: { ...commonLabels, "app.kubernetes.io/component": "database" },
49
+ },
50
+ databaseVersion,
51
+ ...(region && { region }),
52
+ settings,
53
+ }, defs?.instance));
54
+ const database = new SQLDatabase(mergeDefaults({
55
+ metadata: {
56
+ name: databaseK8sName,
57
+ ...(namespace && { namespace }),
58
+ labels: { ...commonLabels, "app.kubernetes.io/component": "database" },
59
+ },
60
+ instanceRef: { name },
61
+ // resourceID sets the actual Cloud SQL database name when the K8s-safe name differs
62
+ ...(databaseName !== sanitizedDbName && { resourceID: databaseName }),
63
+ }, defs?.database));
64
+ const user = new SQLUser(mergeDefaults({
65
+ metadata: {
66
+ // K8s name scoped to the instance for uniqueness (e.g. "mydb-admin").
67
+ // Without resourceID, Config Connector uses metadata.name as the actual
68
+ // Cloud SQL username — so the PG username IS the K8s resource name.
69
+ // Callers can override via defaults.user.resourceID if a shorter name is needed.
70
+ name: `${name}-${userName}`,
71
+ ...(namespace && { namespace }),
72
+ labels: { ...commonLabels, "app.kubernetes.io/component": "database" },
73
+ },
74
+ instanceRef: { name },
75
+ password: {
76
+ valueFrom: {
77
+ secretKeyRef: {
78
+ name: `${name}-db-password`,
79
+ key: "password",
80
+ },
81
+ },
82
+ },
83
+ }, defs?.user));
84
+ return { instance, database, user };
85
+ }, "CloudSqlInstance");
@@ -0,0 +1,64 @@
1
+ /**
2
+ * GcsBucket composite — StorageBucket with encryption, uniform access, and lifecycle.
3
+ */
4
+ import { Composite, mergeDefaults } from "@intentius/chant";
5
+ import { StorageBucket } from "../generated/index.js";
6
+ /**
7
+ * Create a GcsBucket composite.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { GcsBucket } from "@intentius/chant-lexicon-gcp";
12
+ *
13
+ * const { bucket } = GcsBucket({
14
+ * name: "my-data-bucket",
15
+ * location: "US",
16
+ * versioning: true,
17
+ * lifecycleDeleteAfterDays: 365,
18
+ * });
19
+ * ```
20
+ */
21
+ export const GcsBucket = Composite((props) => {
22
+ const { name, location = "US", storageClass = "STANDARD", uniformBucketLevelAccess = true, versioning = false, kmsKeyName, lifecycleDeleteAfterDays, lifecycleNearlineAfterDays, labels: extraLabels = {}, namespace, defaults: defs, } = props;
23
+ const commonLabels = {
24
+ "app.kubernetes.io/name": name,
25
+ "app.kubernetes.io/managed-by": "chant",
26
+ ...extraLabels,
27
+ };
28
+ const spec = {
29
+ location,
30
+ storageClass,
31
+ uniformBucketLevelAccess,
32
+ };
33
+ if (versioning) {
34
+ spec.versioning = { enabled: true };
35
+ }
36
+ if (kmsKeyName) {
37
+ spec.encryption = { kmsKeyRef: { external: kmsKeyName } };
38
+ }
39
+ const lifecycleRules = [];
40
+ if (lifecycleDeleteAfterDays) {
41
+ lifecycleRules.push({
42
+ action: { type: "Delete" },
43
+ condition: { age: lifecycleDeleteAfterDays },
44
+ });
45
+ }
46
+ if (lifecycleNearlineAfterDays) {
47
+ lifecycleRules.push({
48
+ action: { type: "SetStorageClass", storageClass: "NEARLINE" },
49
+ condition: { age: lifecycleNearlineAfterDays },
50
+ });
51
+ }
52
+ if (lifecycleRules.length > 0) {
53
+ spec.lifecycleRule = lifecycleRules;
54
+ }
55
+ const bucket = new StorageBucket(mergeDefaults({
56
+ metadata: {
57
+ name,
58
+ ...(namespace && { namespace }),
59
+ labels: { ...commonLabels, "app.kubernetes.io/component": "storage" },
60
+ },
61
+ ...spec,
62
+ }, defs?.bucket));
63
+ return { bucket };
64
+ }, "GcsBucket");
@@ -0,0 +1,113 @@
1
+ /**
2
+ * GkeCluster composite — ContainerCluster + ContainerNodePool.
3
+ *
4
+ * Creates a GKE cluster with a default node pool configured for
5
+ * workload identity and autoscaling.
6
+ */
7
+ import { Composite, mergeDefaults } from "@intentius/chant";
8
+ import { GKECluster, NodePool } from "../generated/index.js";
9
+ /**
10
+ * Create a GkeCluster composite — returns declarable instances for
11
+ * a ContainerCluster and ContainerNodePool.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { GkeCluster } from "@intentius/chant-lexicon-gcp";
16
+ *
17
+ * const { cluster, nodePool } = GkeCluster({
18
+ * name: "my-cluster",
19
+ * projectId: "my-project",
20
+ * location: "us-central1",
21
+ * maxNodeCount: 10,
22
+ * });
23
+ * ```
24
+ */
25
+ export const GkeCluster = Composite((props) => {
26
+ const { name, projectId, location, initialNodeCount = 1, machineType = "e2-medium", minNodeCount = 1, maxNodeCount = 5, workloadIdentity = true, diskSizeGb = 100, diskType = "pd-standard", network: networkName, subnetwork: subnetworkName, privateNodes = false, masterCidr, nodeLocations, releaseChannel = "REGULAR", labels: extraLabels = {}, namespace, defaults: defs, } = props;
27
+ const commonLabels = {
28
+ "app.kubernetes.io/name": name,
29
+ "app.kubernetes.io/managed-by": "chant",
30
+ ...extraLabels,
31
+ };
32
+ const clusterSpec = {
33
+ // GKE API requires initialNodeCount > 0 even when using a separate
34
+ // ContainerNodePool. Force pd-standard so the default pool doesn't
35
+ // consume SSD_TOTAL_GB quota (pd-balanced counts as SSD).
36
+ initialNodeCount: 1,
37
+ nodeConfig: {
38
+ machineType,
39
+ diskType: "pd-standard",
40
+ diskSizeGb: 50,
41
+ },
42
+ releaseChannel: { channel: releaseChannel },
43
+ ...(location && { location }),
44
+ ...(networkName && { networkRef: { name: networkName } }),
45
+ ...(subnetworkName && { subnetworkRef: { name: subnetworkName } }),
46
+ ...(nodeLocations && { nodeLocations }),
47
+ ...(privateNodes && {
48
+ privateClusterConfig: {
49
+ enablePrivateNodes: true,
50
+ // Keep master endpoint public so kubectl works from outside the VPC.
51
+ enablePrivateEndpoint: false,
52
+ ...(masterCidr && { masterIpv4CidrBlock: masterCidr }),
53
+ },
54
+ }),
55
+ };
56
+ if (workloadIdentity) {
57
+ clusterSpec.workloadIdentityConfig = {
58
+ workloadPool: `${projectId}.svc.id.goog`,
59
+ };
60
+ }
61
+ const cluster = new GKECluster(mergeDefaults({
62
+ metadata: {
63
+ name,
64
+ ...(namespace && { namespace }),
65
+ labels: { ...commonLabels, "app.kubernetes.io/component": "cluster" },
66
+ },
67
+ ...clusterSpec,
68
+ }, defs?.cluster));
69
+ const nodePoolName = `${name}-nodes`;
70
+ const nodePool = new NodePool(mergeDefaults({
71
+ metadata: {
72
+ name: nodePoolName,
73
+ ...(namespace && { namespace }),
74
+ labels: { ...commonLabels, "app.kubernetes.io/component": "node-pool" },
75
+ },
76
+ clusterRef: { name },
77
+ initialNodeCount,
78
+ autoscaling: {
79
+ minNodeCount,
80
+ maxNodeCount,
81
+ },
82
+ nodeConfig: {
83
+ machineType,
84
+ diskSizeGb,
85
+ diskType,
86
+ oauthScopes: ["https://www.googleapis.com/auth/cloud-platform"],
87
+ ...(workloadIdentity && {
88
+ workloadMetadataConfig: { mode: "GKE_METADATA" },
89
+ }),
90
+ },
91
+ management: {
92
+ autoRepair: true,
93
+ autoUpgrade: true,
94
+ },
95
+ ...(location && { location }),
96
+ }, defs?.nodePool));
97
+ // Adopt and scale the GKE-required default pool to 0.
98
+ // resourceID maps this K8s resource to the GCP pool named "default-pool".
99
+ // Config Connector retries until the workload pool has nodes, at which
100
+ // point GKE accepts the resize-to-zero.
101
+ const defaultPool = new NodePool(mergeDefaults({
102
+ metadata: {
103
+ name: `${name}-default-pool`,
104
+ ...(namespace && { namespace }),
105
+ labels: { ...commonLabels, "app.kubernetes.io/component": "default-pool" },
106
+ },
107
+ resourceID: "default-pool",
108
+ clusterRef: { name },
109
+ nodeCount: 0,
110
+ ...(location && { location }),
111
+ }, defs?.defaultPool));
112
+ return { cluster, nodePool, defaultPool };
113
+ }, "GkeCluster");
@@ -0,0 +1,137 @@
1
+ /**
2
+ * GkeCrdbRegion composite — GKE cluster + public DNS zone + per-region IAM for a CockroachDB region.
3
+ *
4
+ * Replaces the 2-file per-region GCP infra pattern (infra/cluster.ts + infra/dns.ts) with
5
+ * a single composite call. Handles the GKE cluster, the public DNS zone, and all per-region
6
+ * Workload Identity IAM bindings for both ExternalDNS and CockroachDB pods.
7
+ */
8
+ import { Composite } from "@intentius/chant";
9
+ import { GkeCluster } from "./gke-cluster.js";
10
+ import { DNSManagedZone, GCPServiceAccount, IAMPolicyMember } from "../generated/index.js";
11
+ /**
12
+ * Create a GkeCrdbRegion composite — returns all GCP resources for one CockroachDB region:
13
+ * GKE cluster, public DNS zone, per-region GSAs, and Workload Identity IAM bindings.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { GkeCrdbRegion } from "@intentius/chant-lexicon-gcp";
18
+ *
19
+ * export const east = GkeCrdbRegion({
20
+ * region: "us-east4",
21
+ * clusterName: "gke-crdb-east",
22
+ * network: "crdb-multi-region",
23
+ * subnetwork: "crdb-multi-region-east-nodes",
24
+ * domain: "east.crdb.example.com",
25
+ * project: GCP_PROJECT_ID,
26
+ * crdbNamespace: "crdb-east",
27
+ * masterCidr: "172.16.0.0/28",
28
+ * });
29
+ * ```
30
+ */
31
+ export const GkeCrdbRegion = Composite((props) => {
32
+ const { region, clusterName, network, subnetwork, domain, project, crdbNamespace, crdbK8sSa = "cockroachdb", masterCidr = "172.16.0.0/28", nodeConfig = {}, releaseChannel = "REGULAR", backupBucket, labels: extraLabels = {}, namespace, } = props;
33
+ const { machineType = "n2-standard-2", diskSizeGb = 100, nodeCount = 1, maxNodeCount = 3, } = nodeConfig;
34
+ const commonLabels = {
35
+ "app.kubernetes.io/name": clusterName,
36
+ "app.kubernetes.io/managed-by": "chant",
37
+ ...extraLabels,
38
+ };
39
+ const meta = (component, resourceName) => ({
40
+ name: resourceName,
41
+ ...(namespace && { namespace }),
42
+ labels: { ...commonLabels, "app.kubernetes.io/component": component },
43
+ });
44
+ // ── GKE Cluster ──────────────────────────────────────────────────────────────
45
+ const { cluster, nodePool, defaultPool } = GkeCluster({
46
+ name: clusterName,
47
+ projectId: project,
48
+ location: region,
49
+ machineType,
50
+ diskSizeGb,
51
+ initialNodeCount: nodeCount,
52
+ minNodeCount: nodeCount,
53
+ maxNodeCount,
54
+ network,
55
+ subnetwork,
56
+ workloadIdentity: true,
57
+ privateNodes: true,
58
+ masterCidr,
59
+ releaseChannel,
60
+ labels: extraLabels,
61
+ ...(namespace && { namespace }),
62
+ });
63
+ // ── Public DNS Zone ───────────────────────────────────────────────────────────
64
+ const dnsZoneName = `${clusterName}-zone`;
65
+ const dnsZone = new DNSManagedZone({
66
+ metadata: meta("dns", dnsZoneName),
67
+ dnsName: `${domain}.`,
68
+ description: `CockroachDB ${region} UI — managed by chant`,
69
+ });
70
+ // ── ExternalDNS Service Account ───────────────────────────────────────────────
71
+ const dnsGsaName = `${clusterName}-dns`;
72
+ const dnsGsa = new GCPServiceAccount({
73
+ metadata: meta("iam", dnsGsaName),
74
+ displayName: `CockroachDB ${region} ExternalDNS workload identity`,
75
+ });
76
+ const dnsWiBinding = new IAMPolicyMember({
77
+ metadata: meta("iam", `${dnsGsaName}-wi`),
78
+ member: `serviceAccount:${project}.svc.id.goog[kube-system/external-dns-sa]`,
79
+ role: "roles/iam.workloadIdentityUser",
80
+ resourceRef: {
81
+ apiVersion: "iam.cnrm.cloud.google.com/v1beta1",
82
+ kind: "IAMServiceAccount",
83
+ name: dnsGsaName,
84
+ },
85
+ });
86
+ const dnsAdminBinding = new IAMPolicyMember({
87
+ metadata: meta("iam", `${dnsGsaName}-admin`),
88
+ member: `serviceAccount:${dnsGsaName}@${project}.iam.gserviceaccount.com`,
89
+ role: "roles/dns.admin",
90
+ resourceRef: {
91
+ apiVersion: "resourcemanager.cnrm.cloud.google.com/v1beta1",
92
+ kind: "Project",
93
+ external: `projects/${project}`,
94
+ },
95
+ });
96
+ // ── CockroachDB Service Account ───────────────────────────────────────────────
97
+ const crdbGsaName = `${clusterName}-crdb`;
98
+ const crdbGsa = new GCPServiceAccount({
99
+ metadata: meta("iam", crdbGsaName),
100
+ displayName: `CockroachDB ${region} workload identity`,
101
+ });
102
+ const crdbWiBinding = new IAMPolicyMember({
103
+ metadata: meta("iam", `${crdbGsaName}-wi`),
104
+ member: `serviceAccount:${project}.svc.id.goog[${crdbNamespace}/${crdbK8sSa}]`,
105
+ role: "roles/iam.workloadIdentityUser",
106
+ resourceRef: {
107
+ apiVersion: "iam.cnrm.cloud.google.com/v1beta1",
108
+ kind: "IAMServiceAccount",
109
+ name: crdbGsaName,
110
+ },
111
+ });
112
+ const result = {
113
+ cluster,
114
+ nodePool,
115
+ defaultPool,
116
+ dnsZone,
117
+ dnsGsa,
118
+ dnsWiBinding,
119
+ dnsAdminBinding,
120
+ crdbGsa,
121
+ crdbWiBinding,
122
+ };
123
+ // Optional: GCS backup access for CRDB GSA
124
+ if (backupBucket) {
125
+ result.crdbBackupBinding = new IAMPolicyMember({
126
+ metadata: meta("iam", `${crdbGsaName}-backup`),
127
+ member: `serviceAccount:${crdbGsaName}@${project}.iam.gserviceaccount.com`,
128
+ role: "roles/storage.objectAdmin",
129
+ resourceRef: {
130
+ apiVersion: "storage.cnrm.cloud.google.com/v1beta1",
131
+ kind: "StorageBucket",
132
+ name: backupBucket,
133
+ },
134
+ });
135
+ }
136
+ return result;
137
+ }, "GkeCrdbRegion");
@@ -0,0 +1,74 @@
1
+ /**
2
+ * GpuNodePool composite — ContainerNodePool with GPU accelerators.
3
+ *
4
+ * Promoted from the hand-wired `gpuNodePool` in the ray-kuberay-gke example
5
+ * (examples/ray-kuberay-gke/src/infra/cluster.ts). Attaches to an existing
6
+ * GKE cluster (e.g. one created by `GkeCluster`) and adds a separate,
7
+ * scale-to-zero pool for GPU-tainted workloads.
8
+ *
9
+ * NOTE: GKE auto-installs the nvidia-device-plugin DaemonSet when a node
10
+ * pool has accelerators. Do NOT emit it as a K8s manifest — it will
11
+ * conflict with the GKE-managed version.
12
+ */
13
+ import { Composite, mergeDefaults } from "@intentius/chant";
14
+ import { NodePool } from "../generated/index.js";
15
+ const DEFAULT_TAINT = [
16
+ { key: "nvidia.com/gpu", value: "present", effect: "NO_SCHEDULE" },
17
+ ];
18
+ /**
19
+ * Create a GpuNodePool composite — a scale-to-zero ContainerNodePool with
20
+ * GPU accelerators, tainted so only pods with a matching toleration land there.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { GpuNodePool } from "@intentius/chant-lexicon-gcp";
25
+ *
26
+ * const { nodePool } = GpuNodePool({
27
+ * name: "ray-gke-gpu",
28
+ * clusterRef: { name: "ray-gke" },
29
+ * location: "us-central1",
30
+ * acceleratorType: "nvidia-tesla-t4",
31
+ * maxNodeCount: 4,
32
+ * });
33
+ * ```
34
+ */
35
+ export const GpuNodePool = Composite((props) => {
36
+ const { name, clusterRef, location, machineType = "n1-standard-8", acceleratorType = "nvidia-tesla-t4", acceleratorCount = 1, minNodeCount = 0, maxNodeCount = 4, diskSizeGb = 200, diskType = "pd-ssd", taint = DEFAULT_TAINT, workloadMetadata = true, gpuSharingConfig, gpuPartitionSize, labels: extraLabels = {}, namespace, defaults: defs, } = props;
37
+ const commonLabels = {
38
+ "app.kubernetes.io/name": name,
39
+ "app.kubernetes.io/managed-by": "chant",
40
+ ...extraLabels,
41
+ };
42
+ const guestAccelerator = {
43
+ count: acceleratorCount,
44
+ type: acceleratorType,
45
+ ...(gpuSharingConfig && { gpuSharingConfig }),
46
+ ...(gpuPartitionSize && { gpuPartitionSize }),
47
+ };
48
+ const nodePool = new NodePool(mergeDefaults({
49
+ metadata: {
50
+ name,
51
+ ...(namespace && { namespace }),
52
+ labels: { ...commonLabels, "app.kubernetes.io/component": "gpu-node-pool" },
53
+ },
54
+ clusterRef,
55
+ location,
56
+ initialNodeCount: 0,
57
+ autoscaling: {
58
+ minNodeCount,
59
+ maxNodeCount,
60
+ locationPolicy: "ANY",
61
+ },
62
+ nodeConfig: {
63
+ machineType,
64
+ diskSizeGb,
65
+ diskType,
66
+ guestAccelerator: [guestAccelerator],
67
+ ...(taint.length > 0 && { taint }),
68
+ ...(workloadMetadata && { workloadMetadataConfig: { mode: "GKE_METADATA" } }),
69
+ oauthScopes: ["https://www.googleapis.com/auth/cloud-platform"],
70
+ },
71
+ management: { autoRepair: true, autoUpgrade: true },
72
+ }, defs?.nodePool));
73
+ return { nodePool };
74
+ }, "GpuNodePool");
@@ -0,0 +1,15 @@
1
+ export { GovernanceFoundation, LocationRestriction, OrganizationAuditConfig } from "./landing-zone.js";
2
+ export { GkeCluster } from "./gke-cluster.js";
3
+ export { CloudRunServiceComposite } from "./cloud-run-service.js";
4
+ export { CloudSqlInstance } from "./cloud-sql-instance.js";
5
+ export { GcsBucket } from "./gcs-bucket.js";
6
+ export { VpcNetwork } from "./vpc-network.js";
7
+ export { PubSubPipeline } from "./pubsub-pipeline.js";
8
+ export { CloudFunctionWithTrigger } from "./cloud-function.js";
9
+ export { PrivateService } from "./private-service.js";
10
+ export { ManagedCertificate } from "./managed-certificate.js";
11
+ export { SecureProject } from "./secure-project.js";
12
+ export { MemorystoreRedis } from "./memorystore-redis.js";
13
+ export { MultiRegionVpc } from "./multi-region-vpc.js";
14
+ export { GkeCrdbRegion } from "./gke-crdb-region.js";
15
+ export { GpuNodePool } from "./gpu-node-pool.js";