Deploy the oidc-gateway helm chart on Azure Kubernetes Service (AKS)
TypeScriptTo deploy the
oidc-gateway
Helm chart on Azure Kubernetes Service (AKS), we will follow these steps using Pulumi:-
Create an AKS Cluster: This is where your application will be hosted. We'll set up a Kubernetes cluster in Azure using the
ProvisionedCluster
resource from theazure-native
package. -
Install the Helm chart: We'll use the
Chart
resource from thekubernetes
package to install theoidc-gateway
Helm chart on our AKS cluster.
Before running this Pulumi program, you'll need to ensure you have the following prerequisites:
- An Azure account and subscription.
- The Azure CLI installed and logged into your account.
- The
kubectl
command-line tool installed. - Pulumi installed and set up to work with Azure.
Here's a Pulumi program to deploy the
oidc-gateway
Helm chart on an AKS cluster:import * as pulumi from "@pulumi/pulumi"; import * as azureNative from "@pulumi/azure-native"; import * as kubernetes from "@pulumi/kubernetes"; // Replace these variables with your own desired settings const resourceGroupName = "myResourceGroup"; const clusterName = "myAksCluster"; const oidcGatewayChartVersion = "1.2.3"; // Please specify the chart version you intend to deploy // Create an Azure Resource Group const resourceGroup = new azureNative.resources.ResourceGroup(resourceGroupName); // Deploy an AKS cluster const aksCluster = new azureNative.hybridcontainerservice.ProvisionedCluster(clusterName, { resourceGroupName: resourceGroup.name, location: resourceGroup.location, // Use the minimum settings for the cluster; you would want to customize this per your needs properties: { controlPlane: { vmSize: "Standard_DS2_v2", // You can choose the appropriate VM size }, // Define additional required properties }, tags: { "Name": "pulumi-aks-cluster" }, }); // Expose the kubeconfig for the AKS cluster export const kubeconfig = pulumi. all([aksCluster.name, resourceGroup.name, aksCluster.properties.controlPlane.profile.kubeConfig()]). apply(([clusterName, resourceGroupName, result]) => { return result.kubeConfig; }); // Deploy the `oidc-gateway` Helm chart onto the AKS cluster const oidcGateway = new kubernetes.helm.v3.Chart("oidc-gateway", { // Assuming the chart is in a Helm repository that has been added and is accessible repo: "my-helm-repo", chart: "oidc-gateway", version: oidcGatewayChartVersion, values: { // Specify any custom values needed for the `oidc-gateway` chart }, }, { provider: new kubernetes.Provider("k8s-provider", { kubeconfig }) }); // Export the public IP to access the `oidc-gateway` export const oidcGatewayIp = oidcGateway.getResourceProperty("v1/Service", "oidc-gateway", "status").apply(status => status.loadBalancer.ingress[0]);
In the code above:
resourceGroup
: Represents the Azure Resource Group for our resources.aksCluster
: This is an AKS cluster where we will deploy our Helm chart.kubeconfig
: It's exported so that you can usekubectl
to interact with your AKS cluster.oidcGateway
: Represents the deployment of theoidc-gateway
Helm chart on our AKS cluster. Therepo
,chart
, andversion
fields should be replaced with the actual information of your Helm chart repository.
When you run the Pulumi program, it will provision the aforementioned resources in your Azure account. Note that in the
oidcGateway
Helm chart deployment, you need to provide the actual repository and chart details foroidc-gateway
. You also need to input any additional required properties for the AKS cluster that might be necessary for your specific deployment.Remember to check if the
oidc-gateway
chart requires any specific configuration in thevalues
field and to replace the placeholder version with the actual chart version you plan to deploy.After the program completes successfully, Pulumi will output the kubeconfig to connect to your new AKS cluster along with the IP address for accessing the
oidc-gateway
.You can use the kubeconfig to configure kubectl:
pulumi stack output kubeconfig --show-secrets > kubeconfig.yaml export KUBECONFIG=kubeconfig.yaml
And then use
kubectl
to interact with your AKS cluster:kubectl get pods
To apply changes to your infrastructure, ensure you are logged in to your Azure account through the Azure CLI (
az login
), and then runpulumi up
from your terminal. Pulumi will perform the diff and make the necessary changes to match the desired state described by your program.-