aws-quickstart / cdk-eks-blueprints

AWS Quick Start Team
Apache License 2.0
447 stars 198 forks source link

AwsForFluentBitAddOn: Helm chart does not deploy due to unconnected dependencies between namespace, serviceaccount, and helm chart #619

Closed youngjeong46 closed 1 year ago

youngjeong46 commented 1 year ago

Describe the bug

When deploying AwsForFluentBitAddOn with all default configurations, we receive a CloudFormation error:

Error: b'Release "blueprints-addon-aws-for-fluent-bit" does not exist. Installing it now.\nError: unable to build kubernetes objects from release manifest: [resource mapping not found for name: "blueprints-addon-aws-for-fluent-bit" namespace: "" from "": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"\nensure CRDs are installed first, resource mapping not found for name: "blueprints-addon-aws-for-fluent-bit" namespace: "" from "": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"\nensure CRDs are installed first]\n' Logs: /aws/lambda/batch-blueprint-awscdkawseksKubect-Handler886CB40B-iHku6qSuRmVO at invokeUserFunction (/var/task/framework.js:2:6) at processTicksAndRejections (internal/process/task_queues.js:95:5) at async onEvent (/var/task/framework.js:1:365) at async Runtime.handler (/var/task/cfn-response.js:1:1543) (RequestId: 9b9ff205-9229-4981-84d9-db7a267e983f)

Upon further inspection, there seems to be no dependencies between namespace, service account, and helm chart that are created as part of the addon.

Expected Behavior

I expect to deploy the addon successfully.

Current Behavior

The addon does NOT deploy, with the error produced from CloudFormation as mentioned in the bug report.

Reproduction Steps

The blueprint that I used to deploy is:

import { Construct } from 'constructs';
import * as blueprints from '@aws-quickstart/eks-blueprints'
import { BatchEksTeam } from '@aws-quickstart/eks-blueprints';

export default class BatchOnEKSConstruct {
    build(scope: Construct, id: string, teams: BatchEksTeam[]) {

        const stackID = `${id}-blueprint`
        blueprints.EksBlueprint.builder()
            .account(process.env.CDK_DEFAULT_ACCOUNT!)
            .region(process.env.CDK_DEFAULT_REGION!)
            .addOns(
                new blueprints.AwsBatchAddOn(), 
                new blueprints.AwsForFluentBitAddOn({
                    version: '0.1.23',
                    values: {
                        cloudWatch: {
                            enabled: true,
                            region: process.env.CDK_DEFAULT_REGION!,
                            logGroupName: 'aws-batch-for-eks-logs'
                        },
                        tolerations: [{
                            "key": "batch.amazonaws.com/batch-node", "operator": "Exists"
                        }]
                    }
                })
            )
            .teams(...teams)
            .build(scope, stackID);
    }
}

Possible Solution

Add dependencies to the namespace, serviceaccount and helm chart deployed.

Additional Information/Context

No response

CDK CLI Version

2.66.1

EKS Blueprints Version

1.6.0

Node.js Version

v16.16.0

Environment details (OS name and version, etc.)

MacOSX 12.6.3

Other information

No response

youngjeong46 commented 1 year ago

This is merged with the PR referenced above. Will close the ticket.