mirror of
https://github.com/graphql-hive/console
synced 2026-04-26 00:47:16 +00:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import * as pulumi from '@pulumi/pulumi';
|
|
import { serviceLocalHost } from '../utils/local-endpoint';
|
|
import { Redis as RedisStore } from '../utils/redis';
|
|
import { ServiceSecret } from '../utils/secrets';
|
|
import { Environment } from './environment';
|
|
|
|
const redisConfig = new pulumi.Config('redis');
|
|
|
|
export class RedisSecret extends ServiceSecret<{
|
|
password: string | pulumi.Output<string>;
|
|
host: string | pulumi.Output<string>;
|
|
port: string | pulumi.Output<string>;
|
|
}> {}
|
|
|
|
export type Redis = ReturnType<typeof deployRedis>;
|
|
|
|
export function deployRedis(input: { environment: Environment }) {
|
|
const redisPassword = redisConfig.requireSecret('password');
|
|
const redisApi = new RedisStore({
|
|
password: redisPassword,
|
|
}).deploy({
|
|
limits: {
|
|
memory: input.environment.podsConfig.redis.memoryLimit,
|
|
cpu: input.environment.podsConfig.redis.cpuLimit,
|
|
},
|
|
});
|
|
|
|
const host = serviceLocalHost(redisApi.service);
|
|
const port = String(redisApi.redisPort);
|
|
|
|
const secret = new RedisSecret('redis', {
|
|
password: redisConfig.requireSecret('password'),
|
|
host,
|
|
port,
|
|
});
|
|
|
|
return {
|
|
deployment: redisApi.deployment,
|
|
service: redisApi.service,
|
|
secret,
|
|
};
|
|
}
|