Deploy the nginx-file-browser helm chart on Oracle Kubernetes Engine (OKE)
TypeScriptTo deploy the
nginx-file-browser
Helm chart on Oracle Kubernetes Engine (OKE) using Pulumi, we'll primarily use two Pulumi resources:kubernetes.helm.sh/v3.Chart
for deploying Helm charts andoci.Artifacts.ContainerRepository
in case we need to manage container images. Since we are deploying a pre-existing Helm chart, the primary focus will be on using thekubernetes.helm.sh/v3.Chart
resource.Let's start by setting up the Oracle Kubernetes Engine (OKE) cluster, which I am assuming already exists. If not, you would need to create one using Pulumi's OCI resources, which is beyond the scope of this guide.
Once we have a Kubernetes cluster configured, we can proceed by creating a new Pulumi project and installing the required Pulumi packages.
The steps to carry out the deployment are as follows:
-
Setting up the Pulumi environment: Initialize a new Pulumi project and install the necessary Pulumi Kubernetes package.
-
Writing the Pulumi program: Create a TypeScript Pulumi program that uses the
kubernetes.helm.sh/v3.Chart
resource to deploy thenginx-file-browser
Helm chart. -
Applying the changes: Run the
pulumi up
command to apply the changes and deploy the Helm chart to your OKE cluster.
Here is how you might write a Pulumi program in TypeScript to deploy the
nginx-file-browser
Helm chart.import * as k8s from "@pulumi/kubernetes"; // Initialize a Pulumi Kubernetes provider configured for OKE. // The kubeconfig can be obtained from OCI, and it should be // handled securely and appropriately. For this example, it is // assumed that it is already set up and Pulumi can use it to // communicate with the cluster. const provider = new k8s.Provider("oke-k8s-provider", { kubeconfig: "<your-kubeconfig-here>", }); // Define the Helm chart resource for nginx-file-browser. // This will install the chart in the default namespace using the // specified chart name and repository. If the chart requires // any custom values, you can pass them in the `values` argument. const nginxFileBrowserChart = new k8s.helm.sh.v3.Chart("nginx-file-browser", { chart: "nginx-file-browser", version: "<chart-version>", // Specify the chart version you wish to deploy. fetchOpts: { repo: "http://<helm-chart-repository>", // Replace with the correct Helm chart repository URL. }, }, { provider }); // To access the deployed nginx-file-browser, you may need to get the // load balancer IP or the NodePort, depending on how the service is set up. // Below is a sample of how you might access the service status. const service = nginxFileBrowserChart.getResourceProperty("v1/Service", "nginx-file-browser", "status"); // Export the load balancer ingress (This may contain the IP or hostname to access the nginx-file-browser UI). export const ingress = service.apply(s => s.loadBalancer?.ingress[0]);
Replace
<your-kubeconfig-here>
with the actualkubeconfig
for your OKE cluster,<chart-version>
with the specific version of thenginx-file-browser
Helm chart you want to deploy, andhttp://<helm-chart-repository>
with the correct Helm chart repository URL wherenginx-file-browser
is located.What this program does:
- It imports the necessary Pulumi and Kubernetes packages.
- Initializes a Kubernetes provider for Pulumi, which allows Pulumi to interact with the Kubernetes cluster.
- Defines a Helm chart resource for deploying
nginx-file-browser
, including the chart's version and the repository URL. - (Optionally) Exports the ingress information for the service, which can be used to access the
nginx-file-browser
user interface once the deployment is complete.
Next Steps:
After you have the above program ready, you can execute the following steps to apply the deployment:
- Run
pulumi stack init
followed bypulumi stack select
to create and select the appropriate stack. - Run
pulumi up
to preview and deploy the changes.
Please make sure that you have Pulumi set up and configured with OCI credentials before running these commands. The command
pulumi up
will show you a preview of what resources will be created or modified. Once you approve the preview, Pulumi will carry out the necessary actions to deploy the Helm chart to your OKE cluster.Remember to handle your kubeconfig securely and keep it private. Also, manage the Pulumi program in version control for better collaboration and versioning.
-