constructor()

in lib/identityprovider.ts [23:51]


    constructor(scope: Construct, id: string, props: OIDCIdentityProviderProps) {
        super(scope, id);

        if (!OIDCIdentityProvider.fn) {
            OIDCIdentityProvider.fn = new Function(scope, 'OIDCIdentityProviderCustomResource', {
                code: Code.fromAsset(path.resolve(__dirname, '..', 'lambda-packages', 'identity_provider_handler')),
                handler: 'index.handler',
                runtime: Runtime.NODEJS_12_X,
                timeout: Duration.minutes(15),
            });
            OIDCIdentityProvider.fn.addToRolePolicy(new PolicyStatement({
                actions: [
                    'eks:DescribeCluster',
                    'iam:CreateOpenIDConnectProvider',
                    'iam:DeleteOpenIDConnectProvider'
                ],
                resources: ['*']
            }));
        }

        const provider = new CustomResource(this, 'Resource', {
            provider: CustomResourceProvider.fromLambda(OIDCIdentityProvider.fn),
            resourceType: 'Custom::EksOidcIdentityProvider',
            properties: {
                ClusterName: props.clusterName,
            }
        });
        this.providerArn = Token.asString(provider.getAtt('Arn'));
    }