in sap-commerce/lib/cdk-eks-stack.ts [15:84]
constructor(scope: core.App, id: string, props: MultiStackProps) {
// const rdsEndpoint = props.rdsEndpoint;
const repoAcc = process.env.CDK_DEFAULT_ACCOUNT;
const repoRegion = process.env.CDK_DEFAULT_REGION
const repoName = 'sap-commerce-repo'
const vpc = props.vpc;
const image_url = repoAcc+'.dkr.ecr.'+repoRegion+'.amazonaws.com/'+repoName+':latest'
super(scope, id, props);
//Create EKS cluster
this.cluster = new eks.Cluster(this, "Cluster", {
vpc: vpc,
defaultCapacity: 0,
version: eks.KubernetesVersion.V1_17,
outputMastersRoleArn: true,
outputClusterName: true,
});
//Add node group
this.cluster.addNodegroupCapacity("nodegroup", {
instanceType: new ec2.InstanceType("c5.2xlarge"),
minSize: 2,
maxSize: 8,
subnets: { subnetType: ec2.SubnetType.PRIVATE },
});
// Deploy SAP Commerce image
const appLabel = { app: "sap-commerce" };
this.cluster.addManifest('sap-commerce', {
apiVersion: "apps/v1",
kind: "Deployment",
metadata: { name: "sap-commerce" },
spec: {
replicas: 1,
selector: { matchLabels: appLabel },
template: {
metadata: { labels: appLabel },
spec: {
containers: [
{
name: "sap-commerce",
image: image_url,
ports: [ { containerPort: 8088 } ],
env:
[ { name: "RDS_ENDPOINT",
value: props.rdsCluster.clusterEndpoint.hostname } ]
}
]
}
}
}
});
this.cluster.addManifest('sap-commerce-lb', {
apiVersion: "v1",
kind: "Service",
metadata: { name: "sap-commerce" },
spec: {
type: "LoadBalancer",
ports: [ { port: 8088, targetPort: 8088 } ],
selector: appLabel
}
});
const eks_loadbalancer = new core.CfnOutput(this, 'eks-loadbalancer', { value: (this.cluster.getServiceLoadBalancerAddress('sap-commerce'))});
}