Halloumi EKS for the CDK
EKS library for the Halloumi modules of the AWS CDK
Installation
pip install hcdk_eks
Usage
Halloumi EKS can be used as a basis to deploy EKS clusters with managed Nodegroups on AWS using the CDK.
Passing your own VPC
Example
Within a sample stack, the following example code should be present for minimum functionality.
self.eks_cluster_public_subnet_name = 'eks_public'
self.eks_cluster_private_subnet_name = 'eks_private'
self.eks_cluster_name = 'EksCluster'
self.eks_stack_name = 'eks-cluster-stack'
# prerequisites for EKS
self.vpc = ec2.Vpc(
self, 'Vpc',
cidr='10.0.0.0/16',
max_azs=99, # use all available AZs,
subnet_configuration=[
{
'cidrMask': 26,
'name': self.eks_cluster_public_subnet_name,
'subnetType': ec2.SubnetType.PUBLIC
},
{
'cidrMask': 24,
'name': self.eks_cluster_private_subnet_name,
'subnetType': ec2.SubnetType.PRIVATE
}
]
)
# Add necessary tags to subnets for the EKS Cluster
private_eks_subnets = self.vpc.select_subnets(
subnet_name=self.eks_cluster_private_subnet_name
).subnets
for subnet in private_eks_subnets:
core.Tag.add(
subnet,
key=f'kubernetes.io/cluster/{self.eks_cluster_name}',
value='shared'
)
core.Tag.add(
subnet,
key=f'kubernetes.io/role/internal-elb',
value='1'
)
# Add necessary tags to subnets for the EKS Cluster
public_eks_subnets = self.vpc.select_subnets(
subnet_name=self.eks_cluster_public_subnet_name
).subnets
for subnet in public_eks_subnets:
core.Tag.add(
subnet,
key=f'kubernetes.io/cluster/{self.eks_cluster_name}',
value='shared'
)
core.Tag.add(
subnet,
key=f'kubernetes.io/role/elb',
value='1'
)
EKS Cluster
Example
from hcdk_eks import HalloumiEksCluster
app = core.App()
sample_stack = SampleAppStack(app, "sample-app")
__config_eks_cluster = {
'stack_name': sample_stack.eks_stack_name,
'eks_cluster_public_subnet_name': sample_stack.eks_cluster_public_subnet_name,
'eks_cluster_private_subnet_name': sample_stack.eks_cluster_private_subnet_name,
'eks_cluster_name': sample_stack.eks_cluster_name,
'kubernetes_version': '1.14',
'nodegroups': {
'nodegroup1': {
'instance_types': [
't3.large'
]
},
'nodegroup2': {
'instance_types': [
't3.xlarge'
]
}
}
}
eks_stack = cfn.NestedStack(
sample_stack, 'eks-stack'
)
HalloumiEksCluster(
scope=eks_stack,
vpc=sample_stack.vpc,
config=__config_eks_cluster
)
app.synth()
Using the VPC from the module
Example
from hcdk_eks import HalloumiEksCluster
app = core.App()
sample_stack = SampleAppStack(app, "sample-app")
__config_eks_cluster = {
'nodegroups': {
'nodegroup1': {
'instance_types': [
't3.large'
]
},
'nodegroup2': {
'instance_types': [
't3.xlarge'
]
}
}
}
# EKS Cluster Stack
eks_cluster_stack = cfn.NestedStack(
sample_stack, 'eks-cluster-stack'
)
eks_cluster = HalloumiEksCluster(
scope=eks_cluster_stack,
config=__config_eks_cluster
)
synth = app.synth()
Metadata
Release files for hcdk-eks 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hcdk_eks-0.0.3.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hcdk_eks-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.4 kB
Release files / hcdk_eks-0.0.3.tar.gz
| Download URL | hcdk_eks-0.0.3.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8441d8b1e3cb3d5cb84e2d16722ec6360b294b41d5905ca9c368c5c4593af449
|
|
BLAKE2b-256 checksum How to use checksums |
e10e233e762c6a2a73dbf8392136dd6e207d32855376d7e541e2ec392da3bb4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
|
Release files / hcdk_eks-0.0.3-py3-none-any.whl
| Download URL | hcdk_eks-0.0.3-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ef430a0c0d81bf7267057495bfa9953cea80d84b2369fc61f083babb8cc9606
|
|
BLAKE2b-256 checksum How to use checksums |
4c9dd209292c76f719b2e3c1b802cfcbf0c56bd76922110c4a237a0606db2ede
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
|