Skip to content

Commit

Permalink
Updating sample file
Browse files Browse the repository at this point in the history
  • Loading branch information
kcoleman731 committed Apr 28, 2021
1 parent de751c2 commit 8248bd6
Show file tree
Hide file tree
Showing 20 changed files with 476 additions and 4,025 deletions.
36 changes: 20 additions & 16 deletions bin/main.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
#!/usr/bin/env node
import * as cdk from '@aws-cdk/core';
import { InstanceType, IVpc } from '@aws-cdk/aws-ec2';
import { Cluster, FargateProfileOptions, KubernetesVersion, MachineImageType, NodegroupAmiType } from '@aws-cdk/aws-eks';
import * as cdk from '@aws-cdk/core';
import { AppMeshAddon } from '../lib/addons/appmesh/appMeshAddon';
import { ArgoCDAddOn } from '../lib/addons/argocd/argoCDAddon';
import { CalicoNetworkPolicyAddon } from '../lib/addons/calico/calicoAddon';
import { ContainerInsightsAddOn } from '../lib/addons/cloudwatch/containerInsightsAddon';
import { ClusterAutoScaler } from '../lib/addons/cluster-autoscaler/clusterAutoscalerAddon';
import { MetricsServerAddon } from '../lib/addons/metrics-server/metricsServerAddon';
import { NginxAddon } from '../lib/addons/nginx/nginxAddon';
import { EC2ClusterProvider, EC2ProviderClusterProps } from '../lib/ec2-cluster-provider';

// Blueprint
import { CdkEksBlueprintStack, ClusterAddOn, ClusterInfo, ClusterProvider, TeamSetup } from '../lib/eksBlueprintStack';

// Addons
import * as addon from '../lib/addons'

// Cluster Providers
import { FargateClusterProvider } from '../lib/fargate-cluster-provider';
import { EC2ClusterProvider, EC2ProviderClusterProps } from '../lib/ec2-cluster-provider';

// Pipeline
import { PipelineStack } from '../lib/pipelineStack';

// Teams
import { TeamBurnhamSetup } from '../lib/teams/team-burnham/setup';
import { TeamRikerSetup } from '../lib/teams/team-riker/setup';
import { TeamTroiSetup } from '../lib/teams/team-troi/setup';

const app = new cdk.App();

const addOns: Array<ClusterAddOn> = [
new CalicoNetworkPolicyAddon,
new MetricsServerAddon,
new ClusterAutoScaler,
new ContainerInsightsAddOn,
new NginxAddon,
new ArgoCDAddOn
new addon.CalicoAddon,
new addon.MetricsServerAddon,
new addon.ClusterAutoScalerAddon,
new addon.ContainerInsightsAddOn,
new addon.NginxAddon,
new addon.ArgoCDAddon
];

const allTeams: Array<TeamSetup> = [
Expand Down Expand Up @@ -53,7 +57,7 @@ new CdkEksBlueprintStack(app, { id: 'west-dev', addOns: addOns, teams: allTeams
},
});

new CdkEksBlueprintStack(app, { id: 'east-test-main', addOns: [new MetricsServerAddon, new ClusterAutoScaler, new ContainerInsightsAddOn, new AppMeshAddon] }, {
new CdkEksBlueprintStack(app, { id: 'east-test-main', addOns: addOns }, {
env: {
account: '929819487611',
region: 'us-east-1',
Expand Down
29 changes: 19 additions & 10 deletions lib/addons/appmesh/appMeshAddon.ts → lib/addons/appmesh/index.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
import { CdkEksBlueprintStack, ClusterAddOn, ClusterInfo } from "../../eksBlueprintStack";
import { ManagedPolicy } from "@aws-cdk/aws-iam";

import { ClusterAddOn, ClusterInfo } from "../../eksBlueprintStack"

export class AppMeshAddon implements ClusterAddOn {

deploy(clusterInfo: ClusterInfo): void {

const cluster = clusterInfo.cluster;

const appmeshNs = cluster.addManifest('appmesh-ns', {
// App Mesh service account.
const opts = { name: 'appmesh-controller', namespace: "appmesh-system" }
const sa = cluster.addServiceAccount('appmesh-controller', opts);

// Cloud Map Full Access policy.
const cloudMapPolicy = ManagedPolicy.fromAwsManagedPolicyName("AWSCloudMapFullAccess")
sa.role.addManagedPolicy(cloudMapPolicy);

// App Mesh Full Access policy.
const appMeshPolicy = ManagedPolicy.fromAwsManagedPolicyName("AWSAppMeshFullAccess")
sa.role.addManagedPolicy(appMeshPolicy);

// App Mesh Namespace
const appMeshNS = cluster.addManifest('appmesh-ns', {
apiVersion: 'v1',
kind: 'Namespace',
metadata: { name: 'appmesh-system' }
});
sa.node.addDependency(appMeshNS);

const sa = cluster.addServiceAccount('appmesh-controller', { name: 'appmesh-controller', namespace: "appmesh-system" });
sa.node.addDependency(appmeshNs);
sa.role.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName("AWSCloudMapFullAccess"));
sa.role.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName("AWSAppMeshFullAccess"));


const chart = cluster.addHelmChart("appmesh-controller", {
// App Mesh Controller
const chart = cluster.addHelmChart("AppMeshAddon", {
chart: "appmesh-controller",
repository: "https://aws.github.io/eks-charts",
release: "appm-release",
Expand All @@ -30,7 +40,6 @@ export class AppMeshAddon implements ClusterAddOn {
"serviceAccount.name": "appmesh-controller"
}
});

chart.node.addDependency(sa);
}
}
24 changes: 0 additions & 24 deletions lib/addons/argocd/argoCDAddon.ts

This file was deleted.

14 changes: 14 additions & 0 deletions lib/addons/argocd/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { KubernetesManifest } from "@aws-cdk/aws-eks";
import { ClusterAddOn, ClusterInfo } from "../../eksBlueprintStack";
import { loadYaml, readYamlDocument } from "../../utils/yamlUtils";

export class ArgoCDAddon implements ClusterAddOn {

deploy(clusterInfo: ClusterInfo): void {
clusterInfo.cluster.addHelmChart("argocd-addon", {
chart: "argo-cd",
repository: "https://argoproj.github.io/argo-helm",
namespace: "argo-cd"
});
}
}
Loading

0 comments on commit 8248bd6

Please sign in to comment.