<?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: Alexy Pulivelil</title>
    <description>The latest articles on DEV Community by Alexy Pulivelil (@alexypulivelil).</description>
    <link>https://dev.to/alexypulivelil</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%2F451858%2Fb5bfa176-9b2f-48eb-8817-a6914ce7d291.jpeg</url>
      <title>DEV Community: Alexy Pulivelil</title>
      <link>https://dev.to/alexypulivelil</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexypulivelil"/>
    <language>en</language>
    <item>
      <title>Stop Manually Editing GitOps Files: ArgoCD Image Updater on Kubernetes</title>
      <dc:creator>Alexy Pulivelil</dc:creator>
      <pubDate>Wed, 08 Apr 2026 10:45:41 +0000</pubDate>
      <link>https://dev.to/alexypulivelil/stop-manually-editing-gitops-files-argocd-image-updater-on-kubernetes-4k3m</link>
      <guid>https://dev.to/alexypulivelil/stop-manually-editing-gitops-files-argocd-image-updater-on-kubernetes-4k3m</guid>
      <description>&lt;p&gt;&lt;em&gt;Every time a developer pushes new code, someone has to manually update the image tag in the GitOps repo. ArgoCD then deploys it. Sound familiar? Let’s fix that.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem🥲&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re running ArgoCD with a GitOps setup, you’ve probably experienced this pain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Developer pushes code&lt;/li&gt;
&lt;li&gt;  CI (Jenkins/Gitlab) builds and pushes a new image to the registry&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Someone&lt;/strong&gt; (u/me/dev) &lt;strong&gt;manually edits the image tag in the GitOps repo&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  ArgoCD detects the change and deploys it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is ArgoCD Image Updater?
&lt;/h2&gt;

&lt;p&gt;ArgoCD Image Updater automatically watches your container registry for new image tags and updates your ArgoCD applications without any manual intervention. When a new image is pushed, it detects the change and triggers a deployment without manual interventions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before we begin, please ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  An EKS cluster running&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;kubectl&lt;/code&gt; configured&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;helm&lt;/code&gt; installed&lt;/li&gt;
&lt;li&gt;  A container registry (DockerHub, ECR, GitLab Registry etc.)&lt;/li&gt;
&lt;li&gt;  A GitHub/GitLab repo for your GitOps values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Install ArgoCD on EKS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, create the ArgoCD namespace and install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see a CRD annotation size error, apply the server-side flag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply --server-side -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Access the ArgoCD UI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl port-forward svc/argocd-server -n argocd 8080:443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieve the initial admin password by opening another terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d &amp;amp;&amp;amp; echo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use this password to log in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Understanding the Multisource Pattern&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In real-world GitOps setups, ArgoCD applications often use &lt;strong&gt;multiple sources&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Source 1&lt;/strong&gt; — The Helm chart from a Helm registry (e.g., Bitnami, your internal registry)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Source 2&lt;/strong&gt; — The values files from your GitOps repository&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a clean separation — the chart is versioned independently from your environment configuration.&lt;/p&gt;

&lt;p&gt;Here’s what a multisource ArgoCD application looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: nginx-sample
  namespace: argocd
  finalizers:
    - resources-finalizer.argocd.argoproj.io
spec:
  project: default
  sources:
    - repoURL: https://charts.bitnami.com/bitnami
      chart: nginx
      targetRevision: 21.0.5
      helm:
        releaseName: nginx-sample
        valueFiles:
          - $values/values/values.yaml
    - repoURL: https://github.com/AlexyPulivelil/gitops-sample.git
      targetRevision: main
      ref: values
  destination:
    server: https://kubernetes.default.svc
    namespace: nginx-sample
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;values.yaml&lt;/code&gt; file typically looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;replicaCount: 1
service:
  type: ClusterIP
  port: 80
image:
  registry: docker.io
  repository: repository/nginix
  tag: "10.0"
  pullPolicy: Always
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are addressing the issue of manually updating these tags on every deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 — Why ArgoCD Image Updater Old Version Won’t Work Here
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;(skip this if having single source.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I tried 0.12.2 initially&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/v0.12.2/manifests/install.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And add annotations to your ArgoCD Application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;annotations:
  argocd-image-updater.argoproj.io/image-list: myapp=myregistry/myapp
  argocd-image-updater.argoproj.io/myapp.update-strategy: latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And if you check logs you could see&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;level=warning msg="skipping app 'nginx-sample' of type '' 
because it's not of supported source type"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;v0.12.2 does not support multisource ArgoCD applications.&lt;/strong&gt; It uses annotations on the Application resource and relies on detecting the source type, which fails for multisource apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NB: If working on single source, this would be sufficient&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This limitation is why we need &lt;strong&gt;v1.1.1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Install ArgoCD Image Updater v1.1.1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;v1.1.1 introduces a CRD based approach — instead of annotations on the ArgoCD Application, you create a dedicated ImageUpdater custom resource. This completely solves the multisource problem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/v1.1.1/config/install.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the controller is running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods -n argocd | grep image-updater-controller
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Grant the controller permissions to access ArgoCD applications:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl create clusterrolebinding image-updater-binding \
  --clusterrole=cluster-admin \
  --serviceaccount=argocd:argocd-image-updater-controller \
  -n argocd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;em&gt;For production, scope down the permissions using a dedicated ClusterRole instead of cluster-admin.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5 — Create the ImageUpdater CR&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the key difference in v1.1.1. Instead of annotating your ArgoCD Application, you create a separate &lt;code&gt;ImageUpdater&lt;/code&gt; resource:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: argocd-image-updater.argoproj.io/v1alpha1
kind: ImageUpdater
metadata:
  name: nginx-sample-updater
  namespace: argocd
spec:
  applicationRefs:
    - namePattern: "nginx-sample"
      images:
        - alias: nginx
          imageName: your-registry/nginx-sample-image
          commonUpdateSettings:
            updateStrategy: newest-build
            forceUpdate: true
          manifestTargets:
            helm:
              tag: image.tag
              name: image.repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What each field means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;namePattern&lt;/code&gt;Which ArgoCD application to watch&lt;/p&gt;

&lt;p&gt;&lt;code&gt;imageName&lt;/code&gt;Which image to monitor in the registry&lt;/p&gt;

&lt;p&gt;&lt;code&gt;updateStrategy&lt;/code&gt;How to pick the new tag (&lt;code&gt;newest-build&lt;/code&gt;, &lt;code&gt;semver&lt;/code&gt;, &lt;code&gt;alphabetical&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;forceUpdate&lt;/code&gt;Update even if image isn't directly referenced in app status&lt;/p&gt;

&lt;p&gt;&lt;code&gt;manifestTargets.helm.tag&lt;/code&gt;Which Helm value holds the image tag&lt;/p&gt;

&lt;p&gt;&lt;code&gt;manifestTargets.helm.name&lt;/code&gt;Which Helm value holds the image repository&lt;/p&gt;

&lt;p&gt;Apply it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f imageupdater-cr.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NB: The apply order should be&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# First the ImageUpdater CR
kubectl apply -f argocd/image-updater-cr.yaml
# Then the ArgoCD Application
kubectl apply -f argocd/application.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now push a new image tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker tag your-dockerhub/nginx:1.0 your-dockerhub/nginx:2.0
docker push your-dockerhub/nginx:2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Watch the magic happen in the logs🧙‍♂️&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl logs -f deployment/argocd-image-updater-controller -n argocd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;msg="Setting new image to your-dockerhub/nginx:2.0"
msg="Successfully updated image to your-dockerhub/nginx:2.0"
msg="Successfully updated application spec for nginx-sample"
msg="images_updated=1"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Fk220hq7f9r7agqwy4hze.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fk220hq7f9r7agqwy4hze.gif" alt="captionless image" width="498" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero manual editing. Fully automated.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Multiple Update Strategies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;newest-build&lt;/code&gt;Always pick the most recently pushed tag&lt;/p&gt;

&lt;p&gt;&lt;code&gt;semver&lt;/code&gt;Follow semantic versioning constraints e.g. &lt;code&gt;~1.29&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alphabetical&lt;/code&gt;Pick the last tag alphabetically&lt;/p&gt;

&lt;p&gt;&lt;code&gt;digest&lt;/code&gt;Track by image digest&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One CR Per Application:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each ArgoCD Application gets its own &lt;code&gt;ImageUpdater&lt;/code&gt; CR. This gives you fine-grained control — each service can have a different update strategy, different registry credentials, and different tag filters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write-back Methods:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;argocd&lt;/code&gt; (default) Updates ArgoCD application parameters directly via API&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git&lt;/code&gt;Commits the tag change back to your GitOps repo&lt;/p&gt;

&lt;p&gt;For true GitOps, use the &lt;code&gt;git&lt;/code&gt; write-back method so every deployment change is tracked in Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations💭
&lt;/h2&gt;

&lt;p&gt;Being transparent about limitations is important before adopting any tool in production:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. One CR per Application:&lt;/strong&gt; Every ArgoCD Application needs its own &lt;code&gt;ImageUpdater&lt;/code&gt; CR. In large setups with many services these requirements can become a lot of CRs to manage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. argocd write-back overrides values.yaml:&lt;/strong&gt; When using the default &lt;code&gt;argocd&lt;/code&gt; write-back method, Image Updater sets a &lt;strong&gt;parameter override&lt;/strong&gt; directly on the ArgoCD Application. This takes priority over your values.yaml file. If you manually edit values.yaml, it won't take effect. Use &lt;code&gt;git&lt;/code&gt; write-back to avoid this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Registry rate limiting:&lt;/strong&gt; Image Updater polls the registry every 2 minutes by default. On DockerHub's free tier this can hit rate limits, especially in teams with many services. Configure credentials or use webhooks for instant updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. newest-build picks by push timestamp&lt;/strong&gt; If you push tags out of order (e.g., push &lt;code&gt;9.0&lt;/code&gt; after &lt;code&gt;10.0&lt;/code&gt;), Image Updater will pick &lt;code&gt;9.0&lt;/code&gt; because they were pushed more recently. Use &lt;code&gt;semver&lt;/code&gt; strategy to avoid this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. No conflict resolution between multiple CRs&lt;/strong&gt; If two &lt;code&gt;ImageUpdater&lt;/code&gt; CRs accidentally target the same ArgoCD Application, they will continuously overwrite each other, causing the application to flip between versions. ensure that only one CR targets each application.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>gitops</category>
      <category>aws</category>
      <category>argocd</category>
    </item>
    <item>
      <title>Getting Started with AWS Bedrock</title>
      <dc:creator>Alexy Pulivelil</dc:creator>
      <pubDate>Sun, 16 Feb 2025 11:06:49 +0000</pubDate>
      <link>https://dev.to/alexypulivelil/getting-started-with-aws-bedrock-29n0</link>
      <guid>https://dev.to/alexypulivelil/getting-started-with-aws-bedrock-29n0</guid>
      <description>&lt;p&gt;Developers can create and scale generative AI applications with Amazon Bedrock, a fully managed service, by utilising foundation models from AWS and other suppliers. In this guide, I’ll walk you through getting started with AWS Bedrock and invoking the Amazon Titan Text Lite v1 model for text generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
Before you begin, ensure that you have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;AWS Account with access to Amazon Bedrock(For testing will be using AmazonBedrockFullAccess)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS CLI installed and configured with appropriate permissions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Boto3 (AWS SDK for Python) installed on your machine&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can install Boto3 using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install boto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 1: Set Up AWS Credentials&lt;/p&gt;

&lt;p&gt;If you haven’t already configured your AWS credentials, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter your AWS Access Key ID, Secret Key, and select your preferred region where Amazon Bedrock is available (e.g., us-east-1).&lt;/p&gt;

&lt;p&gt;Step 2: Initialize the Bedrock Client&lt;br&gt;
To interact with Amazon Bedrock, we need to initialise the AWS Bedrock runtime client using Boto3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3
import json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Initialize Bedrock client
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
Step 3: Invoke Amazon Titan Text Lite v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1&lt;/p&gt;

&lt;p&gt;Let’s create a simple script to invoke Amazon Titan Text Lite v1 for generating a text response.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Define the input text
question = "What is the capital of India?"

# Prepare the payload
payload = {
    "inputText": question,
    "textGenerationConfig": {
        "maxTokenCount": 100,
        "temperature": 0.5,
        "topP": 0.9
    }
}

# Invoke Titan Text Lite v1
response = bedrock.invoke_model(
    modelId="amazon.titan-text-lite-v1",
    contentType="application/json",
    accept="application/json",
    body=json.dumps(payload)
)

# Parse response
result = json.loads(response["body"].read().decode("utf-8"))

# Extract and print the output text
if "results" in result and isinstance(result["results"], list):
    print("Answer:", result["results"][0]["outputText"].strip())
else:
    print("Unexpected response format:", result)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4: Running the Script&lt;/p&gt;

&lt;p&gt;Save the script as invoke_bedrock.py and run it using:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python invoke_bedrock.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Expected Output:&lt;br&gt;
&lt;em&gt;Answer: New Delhi is the capital of India. It is situated in the countrys federal district, which is known as the National Capital Territory of Delhi (NCT), and is located in the Indian subcontinent.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step 5: Fine-tuning Model Parameters&lt;/p&gt;

&lt;p&gt;Amazon Titan models allow temperature and topP tuning for response variation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;temperature: Controls randomness (Lower = More deterministic, Higher = More creative)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;topP: Controls sampling probability (Higher = More diverse responses)&lt;br&gt;
Adjust these values in the textGenerationConfig section for different results.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion&lt;br&gt;
You have successfully invoked the Amazon Titan Text Lite v1 model using AWS Bedrock! You can now integrate this into your applications for chatbots, summarization, and content generation.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ai</category>
      <category>bedrock</category>
      <category>anthropic</category>
    </item>
    <item>
      <title>Cloud Computing</title>
      <dc:creator>Alexy Pulivelil</dc:creator>
      <pubDate>Sun, 23 May 2021 17:47:31 +0000</pubDate>
      <link>https://dev.to/alexypulivelil/cloud-computing-56j0</link>
      <guid>https://dev.to/alexypulivelil/cloud-computing-56j0</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Basics of Cloud Computing&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Moving to the cloud. Running in the cloud. Stored in the cloud. Accessed from the cloud.&lt;br&gt;
Anyone with a smartphone have done at-least any one of the above operations. So cloud is a place where you can access apps and services, and where your data can be stored securely, i.e. it is the on-demand delivery of IT resources via Internet.&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;History of Cloud Computing&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;The Internet has its roots in the 1960s, and as Internet connections got faster and more reliable, a new type of company called an Application Service Provider or ASP started to appear. By the end of the 1990s, salesforce.com introduced its own multi-tenant application which was specifically designed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to run “in the cloud”&lt;/li&gt;
&lt;li&gt;to be accessed over the Internet from a web browser&lt;/li&gt;
&lt;li&gt;to be used by large numbers of customers simultaneously at low cost.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Cloud Computing ?&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Cloud computing is a big shift from the traditional way businesses think about IT resources. Benefits of cloud computing are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost- Cloud computing eliminates the capital expense of buying hardware and software and setting up and running on-site datacentres.&lt;/li&gt;
&lt;li&gt;Speed- Most cloud computing services are provided self service and on demand, so even vast amounts of computing resources can be provisioned in few mouse clicks&lt;/li&gt;
&lt;li&gt;Performance- The biggest cloud computing services run on a worldwide network of secure datacentres, which are regularly upgraded to the latest generation of fast and efficient computing hardware.&lt;/li&gt;
&lt;li&gt;Security- Many cloud providers offer a broad set of policies, technologies and controls that strengthen your security posture overall, helping protect your data, apps and infrastructure from potential threats.&lt;/li&gt;
&lt;li&gt;Global scale- The benefits of cloud computing services include the ability to scale elastically.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Cloud Computing Architecture&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Cloud computing architecture is a combination of service-oriented architecture and event-driven architecture. Cloud computing architecture is divided into the following two parts -&lt;br&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Backend&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend — The front end is used by the client. It contains client-side interfaces and applications that are required to access the cloud computing platforms. The front end includes web servers (including Chrome, Firefox, internet explorer, etc.), tablets, and mobile devices.&lt;/li&gt;
&lt;li&gt;Backend — The back end is used by the service provider. It manages all the resources that are required to provide cloud computing services. It includes a huge amount of data storage, security mechanism, virtual machines, deploying models, servers, traffic control mechanisms, etc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Client-Server Architecture&lt;/strong&gt;&lt;br&gt;
Client-Server Architecture is a distributed application structure that partitions tasks or workloads between the providers of a resource or service called servers and service requesters called clients. Many client requests and receive service from a centralized server. Here, additional hardware can be easily added to increase computing power.&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Types of Cloud Computing&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Public Cloud — Public clouds are owned and operated by a third-party cloud service providers, which deliver their computing resources like servers and storage over the Internet. With a public cloud, all hardware, software and other supporting infrastructure is owned and managed by the cloud provider. AWS, Azure, Google Cloud etc.&lt;/li&gt;
&lt;li&gt;Private Cloud — A private cloud refers to cloud computing resources used exclusively by a single company or organisation. A private cloud can be physically located on the company’s on-site datacentre. Some companies also pay third-party service providers to host their private cloud. A private cloud is one in which the services and infrastructure are maintained on a private network.&lt;/li&gt;
&lt;li&gt;Hybrid Cloud — Hybrid clouds are a combination of public and private clouds, bound together by technology that allows data and applications to be shared between them.&lt;/li&gt;
&lt;li&gt;Community Cloud — It operates as a public cloud. The difference is that this system only allows access to a specific group of users with shared interests and use cases. This type of cloud architecture can be hosted on-premises, at a peer organization, or by a third-party provider. A combination of all three is also an option.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Types of Cloud Services&lt;/strong&gt;&lt;br&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure as a service (IaaS) — The most basic category of cloud computing services. With IaaS, you rent IT infrastructure — servers and virtual machines (VMs), storage, networks, operating systems — from a cloud provider on a pay-as-you-go basis.
Example: Aws, Microsoft Azure
&lt;/li&gt;
&lt;li&gt;Platform as a service (PaaS) — Platform as a service refers to cloud computing services that supply an on-demand environment for developing, testing, software applications. It is designed to make it easier for developers to quickly create web or mobile apps, without worrying about setting up or managing the infrastructure of servers, storage, network and databases needed for development.
Example: Google App Engine
&lt;/li&gt;
&lt;li&gt;Software as a service (SaaS) — Software as a service is a method for delivering software applications over the Internet, on demand and typically on a subscription basis. With SaaS, cloud providers host and manage the software application and underlying infrastructure and handle any maintenance, like software upgrades and security patching.
Example: Gmail, Google Docs etc.
&lt;/li&gt;
&lt;li&gt;Hardware as a service (HaaS) — Hardware as a service refers to managed services or grid computing, where computing power is leased from a central provider. In each case, it is similar to other service-based models, where users rent, rather than purchase, a provider’s tech assets.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of Cloud Computing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security Threat in the Cloud — Before adopting cloud technology, you should be well aware of the fact that you will be sharing all your company’s sensitive information to a third-party cloud computing service provider. Hackers might access this information.&lt;/li&gt;
&lt;li&gt;Downtime — cloud provider may face power loss, low internet connectivity, service maintenance, etc.&lt;/li&gt;
&lt;li&gt;Lower Bandwidth — Many cloud storage service providers limit bandwidth usage of their users. So, in case if your organization surpasses the given allowance, the additional charges could be significantly costly.&lt;/li&gt;
&lt;li&gt;Technical Issues — Cloud technology is always prone to an outage and other technical issues. Even, the best cloud service provider companies may face this type of trouble despite maintaining high standards of maintenance.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>aws</category>
      <category>azure</category>
      <category>googlecloud</category>
    </item>
    <item>
      <title>MLH CUSAT Guild</title>
      <dc:creator>Alexy Pulivelil</dc:creator>
      <pubDate>Sun, 17 Jan 2021 13:57:14 +0000</pubDate>
      <link>https://dev.to/alexypulivelil/mlh-cusat-guild-343i</link>
      <guid>https://dev.to/alexypulivelil/mlh-cusat-guild-343i</guid>
      <description>&lt;p&gt;After Local Hack Day: Learn in the month of October, in the month of January they are organising Local Hack Day: Build, which is a week-long celebration of creating hacks both big and small. Next Local Hack Day: Share will be conducted in the month of March/April.&lt;br&gt;
Working and completing the challenges and learning something are  the main steps done in the Local Hack Day Build. And in this virtual environment there was no lose in the spirit and enthusiasm. It is a great opportunity to learn and collaborate with other fellows. Enjoyed a lot.&lt;/p&gt;

</description>
      <category>majorleaguehacking</category>
      <category>localhackday</category>
      <category>mlh</category>
    </item>
    <item>
      <title>HACKTOBERFEST</title>
      <dc:creator>Alexy Pulivelil</dc:creator>
      <pubDate>Sat, 17 Oct 2020 07:30:37 +0000</pubDate>
      <link>https://dev.to/alexypulivelil/hacktoberfest-2c2g</link>
      <guid>https://dev.to/alexypulivelil/hacktoberfest-2c2g</guid>
      <description>&lt;h1&gt;
  
  
  What I Learned From Hacktoberfest
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Really thankful to Digital Ocean for providing a Fest like this. Hacktoberfest was really fantastic and only because of this I get to know about PRs and open source.
&lt;/h3&gt;

</description>
      <category>hacktoberfest</category>
    </item>
  </channel>
</rss>
