refined-terabyte-65361
08/26/2021, 8:59 PMlittle-cartoon-10569
08/26/2021, 9:23 PMrefined-terabyte-65361
08/26/2021, 9:28 PMconst configServiceSvc = new k8s.core.v1.Service(
"config-svc",
{
metadata: {
namespace: "kubernetes-dashboard",
name: "config",
annotations: {
"<http://service.beta.kubernetes.io/aws-load-balancer-type|service.beta.kubernetes.io/aws-load-balancer-type>": "nlb",
"<http://service.beta.kubernetes.io/aws-load-balancer-internal|service.beta.kubernetes.io/aws-load-balancer-internal>": "true",
},
},
spec: {
type: "LoadBalancer",
ports: [
{
name: "http",
port: 8090,
targetPort: 8090,
},
],
},
},
{ provider: v.provider, dependsOn: namespace },
);
I created service using above how to get arn of. this resource so that i can use in vpcendpoint servicelittle-cartoon-10569
08/26/2021, 9:34 PMrefined-terabyte-65361
08/26/2021, 10:47 PMimport * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.VpcEndpointService("example", {
acceptanceRequired: false,
networkLoadBalancerArns: [aws_lb.example.arn],
});
little-cartoon-10569
08/26/2021, 10:52 PMarn
property.refined-terabyte-65361
08/26/2021, 10:54 PMconst configServiceSvc = new k8s.core.v1.Service(
"config-service-svc",
{
metadata: {
namespace: "kubernetes-dashboard",
name: "config-service",
annotations: {
"<http://service.beta.kubernetes.io/aws-load-balancer-type|service.beta.kubernetes.io/aws-load-balancer-type>": "nlb",
"<http://service.beta.kubernetes.io/aws-load-balancer-internal|service.beta.kubernetes.io/aws-load-balancer-internal>": "true",
},
},
spec: {
type: "LoadBalancer",
ports: [
{
name: "http",
port: 8090,
targetPort: 8090,
},
],
},
},
{ provider: v.provider, dependsOn: namespace },
);
const example = new aws.ec2.VpcEndpointService("example", {
acceptanceRequired: false,
networkLoadBalancerArns: [configServiceSvc.arn],
});
little-cartoon-10569
08/26/2021, 10:54 PMrefined-terabyte-65361
08/26/2021, 10:55 PM"<http://service.beta.kubernetes.io/aws-load-balancer-type|service.beta.kubernetes.io/aws-load-balancer-type>": "nlb
eks creates nlblittle-cartoon-10569
08/26/2021, 10:55 PMaws.alb.LoadBalancer.get()
(https://www.pulumi.com/docs/reference/pkg/aws/alb/loadbalancer/#look-up) to get it.LoadBalander.get()
has an arn
property which you can use.refined-terabyte-65361
08/26/2021, 10:58 PMlittle-cartoon-10569
08/26/2021, 11:01 PMrefined-terabyte-65361
08/26/2021, 11:03 PMlittle-cartoon-10569
08/26/2021, 11:10 PMrefined-terabyte-65361
08/26/2021, 11:12 PMlittle-cartoon-10569
08/26/2021, 11:13 PMnew k8s.core.v1.Service()
, can you create it using new <http://aws.lb|aws.lb>.LoadBalancer()
? You can get an ARN out of that. It means you would need to create the k8s service in a way that uses that load balancer (instead of creating its own).refined-terabyte-65361
08/26/2021, 11:18 PMlittle-cartoon-10569
08/27/2021, 12:07 AMsteep-toddler-94095
08/27/2021, 1:22 AMconst nlbHostname = configServiceSvc.status.loadBalancer
.ingress[0].hostname
const awsAccountId = aws.getCallerIdentity().then(c => c.accountId)
const loadbalancer = LoadBalancer.get(
"somename",
awsLoadbalancerArn({ awsAccountId, lbHostname: nlbHostname })
)
little-cartoon-10569
08/27/2021, 1:25 AMsteep-toddler-94095
08/27/2021, 1:29 AMget
will at least wait until the service resource is created. don't remember if Pulumi waits for the nlb to be created too... I run similar code without any issues, but instead I reference a service resource from a helm chart.little-cartoon-10569
08/27/2021, 1:31 AMsteep-toddler-94095
08/27/2021, 1:33 AMrefined-terabyte-65361
08/27/2021, 1:40 AM