cdk8s-aws-load-balancer-controller is an CDK8S construct library that provides AWS Alb Load Balancer Controller Configure.
Project description
cdk8s-aws-load-balancer-controller
cdk8s aws load balancer controller constructs for cdk8s
This project was formerly known as "CDK AWS ALB Ingress Controller", I just rename it to be "CDK AWS Load Balancer Controller".
Basic implementation of a aws load balancer controller construct for cdk8s. Contributions are welcome!
Before Usage need to install helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Usage
npm i cdk8s-aws-load-balancer-controller
npm i cdk8s
or
yarn add cdk8s-aws-load-balancer-controller
yarn add cdk8s
AWS Load Balance Controller V1
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk8s import App, Chart
from constructs import Construct
from cdk8s_aws_load_balancer_controller import AlbIngressController
class MyChart(Chart):
def __init__(self, scope, name):
super().__init__(scope, name)
AlbIngressController(self, "albingresscntroller",
cluster_name="EKScluster"
)
app = App()
MyChart(app, "testcdk8s")
app.synth()
AWS Load Balance Controller V2
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk8s import App, Chart
from cdk8s_aws_load_balancer_controller import AwsLoadBalancerController
import constructs as constructs
class MyChart(Chart):
def __init__(self, scope, name, *, clusterName):
super().__init__(scope, name)
alb = AwsLoadBalancerController(self, "alb",
cluster_name=cluster_name,
create_service_account=False
)
self.deployment_name = alb.deployment_name
self.deployment_name_space = alb.namespace
app = App()
MyChart(app, "testcdk8s")
app.synth()
AWS Load Balance Controller V2 specific Namespace.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk8s import App, Chart
from cdk8s_aws_load_balancer_controller import AwsLoadBalancerController
import constructs as constructs
class MyChart(Chart):
def __init__(self, scope, name, *, clusterName):
super().__init__(scope, name)
alb = AwsLoadBalancerController(self, "alb",
cluster_name=cluster_name,
create_service_account=False,
namespace="kube-system"
)
self.deployment_name = alb.deployment_name
self.deployment_name_space = alb.namespace
app = App()
MyChart(app, "testcdk8s")
app.synth()
Featrue For Add IAM Policy.
- For IRSA add IAM Policy version 1.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# CDK APP like eks_cluster.ts
from cdk8s_aws_load_balancer_controller import AwsLoadBalancePolicy, VersionsLists
import aws_cdk.aws_eks as eks
cluster = eks.Cluster(self, "MyK8SCluster",
default_capacity=0,
masters_role=cluster_admin,
version=eks.KubernetesVersion.V1_18
)
alb_service_account = cluster.add_service_account("alb-ingress-controller",
name="alb-ingress-controller",
namespace="kube-system"
)
# will help you add policy to IAM Role .
AwsLoadBalancePolicy.add_policy(VersionsLists.AWS_LOAD_BALANCER_CONTROLLER_POLICY_V1, alb_service_account)
- For IRSA add IAM Policy version 2.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# CDK APP like eks_cluster.ts
from cdk8s_aws_load_balancer_controller import AwsLoadBalancePolicy, VersionsLists
import aws_cdk.aws_eks as eks
cluster = eks.Cluster(self, "MyK8SCluster",
default_capacity=0,
masters_role=cluster_admin,
version=eks.KubernetesVersion.V1_18
)
sa = eks.ServiceAccount(self, "albserviceaccount",
cluster=cluster,
name="aws-load-balancer-controller"
)
AwsLoadBalancePolicy.add_policy(VersionsLists.AWS_LOAD_BALANCER_CONTROLLER_POLICY_V2, sa)
Also can see example repo 1 or example repo 2 work with aws cdk.
License
Distributed under the Apache 2.0 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdk8s-aws-load-balancer-controller-2.3.5.tar.gz
.
File metadata
- Download URL: cdk8s-aws-load-balancer-controller-2.3.5.tar.gz
- Upload date:
- Size: 618.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d70cb510d24475d6cefef1ba724b74a64279da7f7ebdb3464d93687f53433b53 |
|
MD5 | 119ef9e5844f3c647e2ccd09bbcef5e6 |
|
BLAKE2b-256 | 2ab6a018c250b7b1f74dc0f770ffda11e971aaa5675afd17e913034cbf14d8c7 |
File details
Details for the file cdk8s_aws_load_balancer_controller-2.3.5-py3-none-any.whl
.
File metadata
- Download URL: cdk8s_aws_load_balancer_controller-2.3.5-py3-none-any.whl
- Upload date:
- Size: 617.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3621ca39cf3b4fbf9af9a9dba3ca4277ac0f2af912a00a71e142fd6099a670fc |
|
MD5 | e0ad232f585ae53970b072cfe8242b8b |
|
BLAKE2b-256 | 78a59d7b99f8c057e8570e6d4849ffb9b37c161ed33039af238d705d3ab93c1a |