sparse-intern-71089
11/07/2023, 6:32 AMpurple-printer-9748
11/07/2023, 7:50 AMorange-policeman-59119
11/07/2023, 3:25 PMsalmon-account-74572
11/07/2023, 4:10 PMkubectl
instance can’t authenticate against AWS for some reason (EKS leverages AWS authentication for cluster auth).big-angle-30002
11/07/2023, 7:01 PM### CREATE CLUSTER ###
for i in range(data_conf["eks_cluster"].__len__()):
data_conf["eks_cluster"][i].update(
{
"vpc_id": vpc.id,
"vpc_cidr_tag": vpc_cidr_block_splited[1],
"public_subnet_ids": [subnet.id for subnet in public_subnets],
"cluster_security_group": public_sg[i], # NOTE: expected 1 SG * Cluster
"instance_roles": cluster_node_role,
}
)
data_conf["eks_cluster"][i]["node_group_options"].update(
{
"cluster_ingress_rule": public_sg[i],
"instance_profile": instance_profiles[i],
"node_security_group": public_sg[i],
"node_subnet_ids": [subnet.id for subnet in public_subnets]
}
)
clusters = CreateAwsEksClusterBuilder.pulumi_builder(data_conf=data_conf)
kubeconfig = clusters[0].kubeconfig
### CREATE K8S PROVIDER ###
if data_conf["provider"]:
provider_conf = data_conf["provider"]
for i in range(data_conf["provider"].__len__()):
provider = ProviderBuild(
f"PROVIDER_{data_conf['project_name'].upper()}",
ProviderArgs(
project_name=data_conf["project_name"],
environment=data_conf["environment"],
index=i,
cluster=clusters[0],
context=provider_conf[i]["context"],
delete_unreachable=provider_conf[i]["delete_unreachable"],
enable_config_map_mutable=provider_conf[i]["enable_config_map_mutable"],
enable_server_side_apply=provider_conf[i]["enable_server_side_apply"],
helm_release_settings=provider_conf[i]["helm_release_settings"],
kube_client_settings=provider_conf[i]["kube_client_settings"],
kubeconfig=clusters[i].kubeconfig,
namespace=provider_conf[i]["namespace"],
render_yaml_to_directory=provider_conf[i]["render_yaml_to_directory"],
suppress_deprecation_warnings=provider_conf[i]["suppress_deprecation_warnings"],
suppress_helm_hook_warnings=provider_conf[i]["suppress_helm_hook_warnings"],
)).provider
providers.append(provider)
k8s_provider.append(Output.format("{0} | {1}\n", provider.id, provider._name))
orange-policeman-59119
11/08/2023, 3:40 PMbig-angle-30002
11/08/2023, 4:42 PMorange-policeman-59119
11/09/2023, 5:23 PMpurple-printer-9748
11/09/2023, 5:31 PM// this is taken from config, from previously created cluster
let clusterName = config.require("clusterName")
const kubeConfigs = pulumi.all([clusterName]).apply(([clusterName]) => {
return azure.containerservice.listManagedClusterUserCredentials({
resourceGroupName: group,
resourceName: clusterName,
});
});
const kubeConfigEncoded = kubeConfigs.kubeconfigs[0].value;
const kubeconfig = kubeConfigEncoded.apply(enc => Buffer.from(enc, "base64").toString());
const aksProvider = new k8s.Provider("aks", {
kubeconfig: kubeconfig
});
// and than all cluster actions are run like:
const nginxIngress = new k8s.helm.v3.Release("ingress-nginx-release", {
chart: "ingress-nginx",
namespace: infraNamespace.metadata.name,
repositoryOpts:{
repo: "<https://kubernetes.github.io/ingress-nginx>",
},
values: {
controller: {
replicaCount: 2,
service: {
externalTrafficPolicy: "Local",
loadBalancerIP: ingressPubicIp
}
}
}
}, { provider: aksProvider, dependsOn: [infraNamespace]});