console/deployment/services/s3.ts
Laurin Quast 5bf4abd6d6
feat: write artifacts and persisted documents to s3 mirror (#5538)
Co-authored-by: Kamil Kisiela <kamil.kisiela@gmail.com>
2024-08-27 19:03:09 +00:00

37 lines
1.1 KiB
TypeScript

import * as pulumi from '@pulumi/pulumi';
import { ServiceSecret } from '../utils/secrets';
export class S3Secret extends ServiceSecret<{
accessKeyId: string | pulumi.Output<string>;
secretAccessKey: string | pulumi.Output<string>;
endpoint: string | pulumi.Output<string>;
bucket: string | pulumi.Output<string>;
}> {}
export function deployS3() {
const r2Config = new pulumi.Config('r2');
const secret = new S3Secret('cloudflare-r2', {
endpoint: r2Config.require('endpoint'),
bucket: r2Config.require('bucketName'),
accessKeyId: r2Config.requireSecret('accessKeyId'),
secretAccessKey: r2Config.requireSecret('secretAccessKey'),
});
return { secret };
}
export function deployS3Mirror() {
const s3Config = new pulumi.Config('s3');
const secret = new S3Secret('aws-s3', {
endpoint: s3Config.require('endpoint'),
bucket: s3Config.require('bucketName'),
accessKeyId: s3Config.requireSecret('accessKeyId'),
secretAccessKey: s3Config.requireSecret('secretAccessKey'),
});
return { secret };
}
export type S3 = ReturnType<typeof deployS3>;