<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: skumaraz2k7</title>
    <description>The latest articles on DEV Community by skumaraz2k7 (@skumaraz2k7).</description>
    <link>https://dev.to/skumaraz2k7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1093229%2F66018794-3449-4dac-8758-0c46c0995468.png</url>
      <title>DEV Community: skumaraz2k7</title>
      <link>https://dev.to/skumaraz2k7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skumaraz2k7"/>
    <language>en</language>
    <item>
      <title>File upload to Azure Storage Blob using Node JS Application</title>
      <dc:creator>skumaraz2k7</dc:creator>
      <pubDate>Tue, 14 Nov 2023 19:58:05 +0000</pubDate>
      <link>https://dev.to/skumaraz2k7/file-upload-to-azure-storage-blob-using-node-js-application-2gkk</link>
      <guid>https://dev.to/skumaraz2k7/file-upload-to-azure-storage-blob-using-node-js-application-2gkk</guid>
      <description>&lt;h1&gt;
  
  
  File upload to Azure Storage Blob using Node JS Application
&lt;/h1&gt;

&lt;p&gt;This is a simple Node.js project that allows you to fill a basic form and submit. On Submit action input variables are processed and stored as a Yaml file in an Azure Blob Storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Node.js installed on your machine. You can download it from &lt;a href="https://nodejs.org/"&gt;https://nodejs.org/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;An Azure Storage Account. If you don't have one, you can create it in the &lt;a href="https://portal.azure.com/"&gt;Azure Portal&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Update file &lt;code&gt;.env&lt;/code&gt; and replace &lt;code&gt;AZURE_STORAGE_CONNECTION_STRING&lt;/code&gt; with your Azure Storage Account connection string.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Clone the repository:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/skumaraz2k7/nodejs-azure-ad-group-project.git
&lt;span class="nb"&gt;cd &lt;/span&gt;nodejs-azure-ad-group-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install dependencies:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the application:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visit &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt; in your web browser to access the form.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your web browser and navigate to &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fill in the form with the required information (AD Group Name and Group Type).&lt;/li&gt;
&lt;li&gt;Click the "Create Group" button to submit the form.&lt;/li&gt;
&lt;li&gt;The form data will be saved to a &lt;code&gt;test.tfvars&lt;/code&gt; file and uploaded to the specified Azure Storage Account container.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;If you'd like to contribute to this project, please follow these guidelines:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the repository.&lt;/li&gt;
&lt;li&gt;Create a new branch for your feature or bug fix.&lt;/li&gt;
&lt;li&gt;Commit your changes and push them to your fork.&lt;/li&gt;
&lt;li&gt;Create a pull request.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This project is licensed under the MIT License - see the &lt;a href="https://dev.toLICENSE"&gt;LICENSE&lt;/a&gt; file for details.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Helm Charts in Azure Container Registry</title>
      <dc:creator>skumaraz2k7</dc:creator>
      <pubDate>Sun, 15 Oct 2023 18:46:20 +0000</pubDate>
      <link>https://dev.to/skumaraz2k7/helm-charts-in-azure-container-registry-53kj</link>
      <guid>https://dev.to/skumaraz2k7/helm-charts-in-azure-container-registry-53kj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of Contents:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Introduction
&lt;/li&gt;
&lt;li&gt; Prerequisites
&lt;/li&gt;
&lt;li&gt; Setting Up Helm for Private Registry
&lt;/li&gt;
&lt;li&gt; Pushing Helm Charts to a Private Registry
&lt;/li&gt;
&lt;li&gt; What Next
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1. Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, you will discover the power of Helm charts in Azure Container Registry (ACR). This post guides you through the seamless integration of Helm, enabling secure and scalable management of Helm charts within ACR, elevating your Kubernetes deployments on Azure to the next level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Subscription&lt;/li&gt;
&lt;li&gt;Azure Container Registry (ACR)&lt;/li&gt;
&lt;li&gt;Helm Client (Version &amp;gt; 3.0)&lt;/li&gt;
&lt;li&gt;Basic knowledge of Docker, Azure, and Container Registry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Setting Up Helm for Private Registry&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you don't have a Helm client, please follow the instructions &lt;a href="https://helm.sh/docs/intro/install/" rel="noopener noreferrer"&gt;here&lt;/a&gt; according to your OS.&lt;br&gt;
I am using helm on macos, but you can use any supported OS.&lt;/p&gt;

&lt;p&gt;Make sure you are using Helm version &amp;gt; 3.0&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23z9x8o93g59p8yeqr4r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23z9x8o93g59p8yeqr4r.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create Helm Chart as below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;helm create myapp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will initialise local helm charts. As a result two folders, chart and templates along with two files Chart.yaml and values.yaml are created as below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6r4vstsdodywih3kqci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6r4vstsdodywih3kqci.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To keep the chart simple, remove all files from templates folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6lmvlkbcioys0uosmxe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6lmvlkbcioys0uosmxe.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create deployment.yaml and service.yaml file inside templates folder using below commands&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; deployment.yaml&lt;br&gt;
apiVersion: apps/v1&lt;br&gt;
kind: Deployment&lt;br&gt;
metadata:&lt;br&gt;
  name: myapp-deployment&lt;br&gt;
  labels:&lt;br&gt;
    app: myapp&lt;br&gt;
spec:&lt;br&gt;
  replicas: 3&lt;br&gt;
  selector:&lt;br&gt;
    matchLabels:&lt;br&gt;
      app: myapp&lt;br&gt;
  template:&lt;br&gt;
    metadata:&lt;br&gt;
      labels:&lt;br&gt;
        app: myapp&lt;br&gt;
    spec:&lt;br&gt;
      containers:&lt;br&gt;
      - name: nginx&lt;br&gt;
        image: nginx:1.14.2&lt;br&gt;
        ports:&lt;br&gt;
        - containerPort: 80&lt;br&gt;
EOF&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; service.yaml&lt;br&gt;
apiVersion: v1&lt;br&gt;
kind: Service&lt;br&gt;
metadata:&lt;br&gt;
  name: myapp-service&lt;br&gt;
spec:&lt;br&gt;
  selector:&lt;br&gt;
    app: myapp&lt;br&gt;
  ports:&lt;br&gt;
    - protocol: TCP&lt;br&gt;
      port: 80&lt;br&gt;
      targetPort: 80&lt;br&gt;
EOF&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Packaging the chart to local archive&lt;br&gt;
change directory to myapp and run below command:&lt;br&gt;
&lt;code&gt;helm package .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblpp0ogx0ntcka6k7gye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblpp0ogx0ntcka6k7gye.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Pushing Helm Charts to a Private Registry&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make sure you have a container registry in your azure subscription with pull and push permission.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fch1qrg70jf0qugyhikgz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fch1qrg70jf0qugyhikgz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First authenticate to container registry as below:&lt;br&gt;
helm registry login  --username xxx --password xxx&lt;/p&gt;

&lt;p&gt;I am using a service principal (app registration) which has acrpull and acrpush permission on the repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1ortsaajzyrt9ewsrev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1ortsaajzyrt9ewsrev.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90wp41zgdzouwn3xgxiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90wp41zgdzouwn3xgxiu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkom2xzcl6ru8ql4hjbr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkom2xzcl6ru8ql4hjbr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now push helm chart to container registry as OCI artifact as below:&lt;br&gt;
&lt;code&gt;helm push myapp-0.1.0.tgz oci://skazacr.azurecr.io/helm&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoso4xy7htffk1ya6rfg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoso4xy7htffk1ya6rfg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check the portal to confirm the charts are pushed correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb8xt717qjbeowcw7il5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb8xt717qjbeowcw7il5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What Next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was a simple demonstration on how to use private registry for helm charts. In the next article I will show you how to deploy and upgrade the helm chart from private container registry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author Bio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a dedicated Kubernetes enthusiast, I am on a continuous journey to harness the full potential of container orchestration. With certifications in both Certified Kubernetes Administrator (CKA) and Certified Kubernetes Application Developer (CKAD), I bring hands-on expertise to the table. I believe in the philosophy of learning Kubernetes every day, staying at the forefront of this dynamic technology, and sharing my insights with the community. Join me in exploring the ever-evolving world of Kubernetes and containerization. &lt;br&gt;
Follow me on LinkedIn - &lt;a href="https://dev.tourl"&gt;www.linkedin.com/in/sandeep-kumar-60049b16&lt;/a&gt; &lt;/p&gt;

</description>
      <category>helm</category>
      <category>kubernetes</category>
      <category>azure</category>
      <category>acr</category>
    </item>
  </channel>
</rss>
