@blitzm/azure-kubernetes is a typescript library for simplifying the process of creating an AKS cluster with a single managed node groups. It abstracts the complicated configurations to provider a simple input interface for Blitzm developers to deploy res
npm install @blitzm/azure-kubernetes@blitzm/azure-kubernetes is a typescript library for simplifying the process of creating an AKS cluster with a single managed node groups. It abstracts the complicated configurations to provider a simple input interface for Blitzm developers to deploy resources to the cloud platform with little or no domain knowledge of the provider.
This package can be installed using npm
``bash`
npm install --save --save-exact @blitzm/azure-kubernetes
`typescript
import { AzureKubernetes } from '@blitzm/azure-kubernetes';
import * as azure from '@pulumi/azure';
const vnet = new azure.network.VirtualNetwork('vnet', {
name: 'vnet',
resourceGroupName: resourceGroup.name,
addressSpaces: [ '10.13.0.0/16' ]
});
const subnet = new azure.network.Subnet('subnet', {
name: 'subnet',
resourceGroupName: resourceGroup.name,
virtualNetworkName: vnet.name,
addressPrefixes: [ '10.13.0.0/24' ]
});
// a cluster without Firewall
const cluster = new AzureKubernetes('cluster', {
resourceGroup: resourceGroup,
network: {
subnet: clusterSubnet,
vNet: vNet,
},
nodeSize: 'Standard_B2s',
nodeDiskGB: 30,
minNodes: 1
maxNodes:3
});
// a cluster with Firewall to control the egress
const cluster = new AzureKubernetes(
'cluster',
{
resourceGroup: resourceGroup,
minNodes: 1,
maxNodes: 2,
network: {
subnet: clusterSubnet,
vNet: vNet,
},
firewall: {
enable: true,
allowedHttpDomains: [
"*.docker.com",
"*.docker.io",
"*.k8s.io",
"*.pkg.dev",
"*.appspot.com",
"*.gcr.io",
"*.amazonaws.com",
"quay.io",
"*.quay.io",
"letsencrypt.org",
"*.letsencrypt.org",
],
},
nginxIngress: {
enabled: true,
},
certManager: {
enabled: true,
},
maxPods: 60,
kubernetesVersion: "1.29",
}
);
export const cluster = cluster.cluster
export const kubeconfig = cluster.kubeconfig
export const servicePrincipal = cluster.servicePrincipal
export const ingressId = cluster.ingressPublicIP
``
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.