Skip to content

Commit

Permalink
chore: onboarding kubecost addon
Browse files Browse the repository at this point in the history
  • Loading branch information
sm-utkarsh committed Nov 27, 2024
1 parent d0d8e08 commit fb4766e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 24 deletions.
12 changes: 12 additions & 0 deletions src/constructs/core-addon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,16 @@ export class KubeProxyAddon extends CoreAddonAbstract {
serviceAccountName: 'kube-proxy',
});
}
}

export class KubeCostAddon extends CoreAddonAbstract {
/**
*
*/
constructor(scope: Construct, id: string, props: CoreAddonProps) {
super(scope, id, {
...props,
addonName: 'kubecost_kubecost',
});
}
}
16 changes: 6 additions & 10 deletions src/constructs/eks-cluster.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@ import * as kms from 'aws-cdk-lib/aws-kms';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import { Construct } from 'constructs';
import { CommonHelmCharts, StandardHelmProps } from './common-helm-charts';
import { CoreDnsAddon, KubeProxyAddon } from './core-addon';
import { CoreDnsAddon, KubeProxyAddon, KubeCostAddon } from './core-addon';
import {
VpcCniAddonVersion,
VpcEniAddon,
KubeCostAddon,
} from '../constructs/eks-managed-addon';

import {
Expand Down Expand Up @@ -106,7 +105,7 @@ export interface EKSClusterProps {
readonly addonProps?: AddonProps;
readonly coreDnsAddonProps?: CoreAddonValuesProps;
readonly kubeProxyAddonProps?: CoreAddonValuesProps;
readonly kubeCostAddonProps?: KubeCostAddonProps;
readonly kubeCostAddonProps?: CoreAddonValuesProps;
readonly region: string;
}

Expand All @@ -115,11 +114,6 @@ export interface AddonProps {
readonly configurationValues?: string;
}

export interface KubeCostAddonProps {
readonly addonVersion?: VpcCniAddonVersion;
readonly configurationValues?: string;
}

export interface CoreAddonValuesProps {
readonly addonVersion?: string;
readonly configurationValues?: string;
Expand Down Expand Up @@ -419,16 +413,18 @@ export class EKSCluster extends Construct {
}

if (props.kubeCostAddonProps) {
const kubeCostAddonConfig = this.props.kubeCostAddonProps?.addonVersion && this.props.kubeCostAddonProps?.configurationValues
const kubeDnsAddonConfig = this.props.kubeCostAddonProps?.addonVersion && this.props.kubeCostAddonProps?.configurationValues
? { addonVersion: this.props.kubeCostAddonProps?.addonVersion, configurationValues: this.props.kubeCostAddonProps?.configurationValues }
: { addonVersion: this.props.kubeCostAddonProps?.addonVersion };

new KubeCostAddon(this, 'KubeCostAddon', {
cluster: this.cluster,
...kubeCostAddonConfig,
...kubeDnsAddonConfig,
resolveConflicts: true,
});
}


const storageclassDefault = new eks.KubernetesManifest(this, 'gp2', {
overwrite: true,
cluster: this.cluster,
Expand Down
16 changes: 2 additions & 14 deletions src/constructs/eks-managed-addon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import * as cdk from 'aws-cdk-lib';
import * as eks from 'aws-cdk-lib/aws-eks';
import * as iam from 'aws-cdk-lib/aws-iam';
import { Construct } from 'constructs';

export interface VpcCniAddonProps extends EksManagedAddonProps {
readonly addonVersion?: VpcCniAddonVersion;
readonly configurationValues?: string;
Expand Down Expand Up @@ -208,17 +209,4 @@ export class VpcEniAddon extends EksManagedAddonAbstract {
awsManagedPolicyName: 'AmazonEKS_CNI_Policy',
});
}
}

export class KubeCostAddon extends EksManagedAddonAbstract {
/**
*
*/
constructor(scope: Construct, id: string, props: VpcCniAddonProps) {
super(scope, id, {
...props,
addonName: 'kubecost_kubecost',
serviceAccountName: 'aws-node',
});
}
}
}

0 comments on commit fb4766e

Please sign in to comment.