feat(infra): Use a shared VPC (#218)

## Description
The scope of this PR is to add a shared VPC for everyone on the team.
This commit is contained in:
Wanjohi
2025-03-26 06:29:25 +03:00
committed by GitHub
parent 633b332700
commit 7ecc068466
10 changed files with 27 additions and 48 deletions

View File

@@ -1,7 +1,7 @@
import { vpc } from "./vpc";
import { bus } from "./bus";
import { domain } from "./dns";
import { email } from "./email";
// import { email } from "./email";
import { secret } from "./secret";
import { postgres } from "./postgres";
@@ -19,7 +19,7 @@ export const auth = new sst.aws.Auth("Auth", {
handler: "packages/functions/src/auth.handler",
link: [
bus,
email,
// email,
postgres,
authFingerprintKey,
secret.PolarSecret,

View File

@@ -1,5 +1,5 @@
import { vpc } from "./vpc";
import { email } from "./email";
// import { email } from "./email";
import { allSecrets } from "./secret";
import { postgres } from "./postgres";
@@ -9,7 +9,7 @@ bus.subscribe("Event", {
vpc,
handler: "./packages/functions/src/event/event.handler",
link: [
email,
// email,
postgres,
...allSecrets
],

View File

@@ -1,6 +1,6 @@
import { domain } from "./dns";
export const email = new sst.aws.Email("Mail",{
sender: domain,
dns: sst.cloudflare.dns(),
})
// export const email = new sst.aws.Email("Mail",{
// sender: domain,
// dns: sst.cloudflare.dns(),
// })

View File

@@ -2,7 +2,7 @@ import { vpc } from "./vpc";
import { isPermanentStage } from "./stage";
// TODO: Add a dev db to use, this will help with running zero locally... and testing it
export const postgres = new sst.aws.Aurora("Postgres", {
export const postgres = new sst.aws.Aurora("Database", {
vpc,
engine: "postgres",
scaling: isPermanentStage

View File

@@ -1,17 +1,11 @@
// import { isPermanentStage } from "./stage";
import { isPermanentStage } from "./stage";
// export const vpc = isPermanentStage
// ? new sst.aws.Vpc("Vpc", {
// az: 2,
// })
// //FIXME: Change this ID
// : undefined //sst.aws.Vpc.get("Vpc", "vpc-070a1a7598f4c12d1");
// //
export const vpc = new sst.aws.Vpc("NestriVpc", {
az: 2,
// For lambdas to work in this VPC
nat: "ec2",
// For SST tunnel to work
bastion: true
})
export const vpc = isPermanentStage
? new sst.aws.Vpc("VPC", {
az: 2,
// For lambdas to work in this VPC
nat: "ec2",
// For SST tunnel to work
bastion: true,
})
: sst.aws.Vpc.get("VPC", "vpc-0beb1cdc21a725748");

View File

@@ -2,9 +2,9 @@ import { Resource } from "sst";
import { defineConfig } from "drizzle-kit";
const connection = {
user: Resource.Postgres.username,
password: Resource.Postgres.password,
host: Resource.Postgres.host,
user: Resource.Database.username,
password: Resource.Database.password,
host: Resource.Database.host,
};
export default defineConfig({

View File

@@ -6,11 +6,11 @@ import { drizzle } from "drizzle-orm/postgres-js";
const client = postgres({
idle_timeout: 30000,
connect_timeout: 30000,
host: Resource.Postgres.host,
database: Resource.Postgres.database,
user: Resource.Postgres.username,
password: Resource.Postgres.password,
port: Resource.Postgres.port,
host: Resource.Database.host,
database: Resource.Database.database,
user: Resource.Database.username,
password: Resource.Database.password,
port: Resource.Database.port,
max: parseInt(process.env.POSTGRES_POOL_MAX || "1"),
});

View File

@@ -28,13 +28,6 @@ declare module "sst" {
"name": string
"type": "sst.aws.Bus"
}
"Database": {
"host": string
"name": string
"password": string
"type": "sst.sst.Linkable"
"user": string
}
"DatabaseMigrator": {
"name": string
"type": "sst.aws.Function"

7
sst-env.d.ts vendored
View File

@@ -28,13 +28,6 @@ declare module "sst" {
"name": string
"type": "sst.aws.Bus"
}
"Database": {
"host": string
"name": string
"password": string
"type": "sst.sst.Linkable"
"user": string
}
"DatabaseMigrator": {
"name": string
"type": "sst.aws.Function"

View File

@@ -15,7 +15,6 @@ export default $config({
},
cloudflare: "5.49.0",
random: "4.17.0",
neon: "0.6.3",
command: "1.0.2",
},
};