index.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import * as awsx from '@pulumi/awsx'
  2. import * as eks from '@pulumi/eks'
  3. // import * as k8s from '@pulumi/kubernetes'
  4. import * as pulumi from '@pulumi/pulumi'
  5. import * as k8sjs from './k8sjs'
  6. require('dotenv').config()
  7. const awsConfig = new pulumi.Config('aws')
  8. // Create a VPC for our cluster.
  9. const vpc = new awsx.ec2.Vpc('vpc', { numberOfAvailabilityZones: 2 })
  10. // Create an EKS cluster with the default configuration.
  11. const cluster = new eks.Cluster('eksctl-my-cluster', {
  12. vpcId: vpc.id,
  13. subnetIds: vpc.publicSubnetIds,
  14. instanceType: 't2.micro',
  15. providerCredentialOpts: {
  16. profileName: awsConfig.get('profile'),
  17. },
  18. })
  19. // Export the cluster's kubeconfig.
  20. export const kubeconfig = cluster.kubeconfig
  21. // Create a repository
  22. const repo = new awsx.ecr.Repository('my-repo')
  23. const redisLeader = new k8sjs.ServiceDeployment('redis-leader', {
  24. image: 'redis:6.0-alpine',
  25. ports: [6379],
  26. })
  27. const db = new k8sjs.ServiceDeployment('postgres-db', {
  28. image: 'postgres:12',
  29. ports: [5432],
  30. env: [
  31. { name: 'POSTGRES_USER', value: process.env.DB_USER! },
  32. { name: 'POSTGRES_PASSWORD', value: process.env.DB_PASS! },
  33. { name: 'POSTGRES_DB', value: process.env.INDEXER_DB_NAME! },
  34. ],
  35. })