Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 1fv2

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5)

In a series of previous articles, I covered a lot about the “Argo CD Extension for Quarkus”.

In my previous article, I described how I continued with the “Getting started” part of the “Argo CD Extension for Quarkus”, and how I created an Argo CD Application in Kubernetes, for the “kubernetes-quickstart” application in my GitHub Private repository.

In this article (part 5), I will continue with, using the Argo CD Sync Options.

As a base for this, I will be using my already existing Linux demo environment, including Quarkus and K3s (a lightweight certified Kubernetes distribution) and setup via Vagrant.

Overview of my Linux demo environment, including Argo CD

Below, you can see an overview of my Linux demo environment, as described in my previous article:
[Quarkus – trying out the “Argo CD Extension for Quarkus” (part 4)]

This includes the Argo CD API Server and Argo CD CLI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 2

For the Linux demo environment to start, from the Oracle VM VirtualBox Manager on my Windows laptop, I started the appliance (in “Headless Start” mode).

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 3

Once the VM was running, for executing later manual steps, I used vagrant ssh to connect into the running VM.

The Argo CD Application and Argo CD Project manifest (yaml) files

In my previous article I described how the following Argo CD manifest (yaml) files were generated as part of the Quarkus build: application-kubernetes-quickstart.yaml and appproject-kubernetes-quickstart.yaml.
[Quarkus – trying out the “Argo CD Extension for Quarkus” (part 4)]

As you may remember, the content of file appproject-kubernetes-quickstart.yaml was:

---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destinations:
  - namespace: nl-amis-development
    server: https://kubernetes.default.svc
  sourceRepos:
  - https://github.com/marclameriks/kubernetes-quickstart.git

As you may remember, the content of file application-kubernetes-quickstart.yaml was:

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
    namespace: nl-amis-development
  project: kubernetes-quickstart
  source:
    helm:
      valueFiles:
      - values.yaml
    path: .helm/kubernetes/kubernetes-quickstart
    repoURL: https://github.com/marclameriks/kubernetes-quickstart.git
    targetRevision: HEAD
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    retry:
      backoff:
        duration: 5s
        factor: 2
        maxDuration: 10m
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
    - ApplyOutOfSyncOnly=true

In order to see the current status of the Argo CD kubernetes-quickstart application (via the Argo CD UI), in the Web Browser on my Windows laptop, I entered the URL:

https://localhost:8086

As I did before and described in my previous article, I logged in with the username and password for the Argo CD API Server.
[Quarkus – trying out the “Argo CD Extension for Quarkus” (part 2)]

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 4v2

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (23 days ago)
  • Last Sync: 02/17/2026 19:38:07 (2 minutes ago)

Above you can see the Argo CD kubernetes-quickstart application. Next, I clicked on this application.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 5v2

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (96c2f7b)
  • LAST SYNC: Sync OK to 96c2f7b, Succeeded 2 minutes ago (Tue Feb 17 2026 19:38:07 GMT +0100)

As you can see, there are 5 replicated Pods (replicas) running.

Again (as described in my previous article), let’s look at some of the Sync information visible on this page:

  • APP HEALTH

The health status of your app.

  • SYNC STATUS

Whether or not the version of your app is up to date with your repo. You may wish to sync your app if it is out-of-sync.

  • LAST SYNC

Whether or not your last app sync was successful. It has been 0 days since last sync. Click for the status of that sync.

Argo CD compares the current, “live state” against the “desired target state” (as specified in the Git repo).

Argo CD is implemented as a Kubernetes controller which continuously monitors running applications and compares the current, live state against the desired target state (as specified in the Git repo). A deployed application whose live state deviates from the target state is considered OutOfSync. Argo CD reports & visualizes the differences, while providing facilities to automatically or manually sync the live state back to the desired target state. Any modifications made to the desired target state in the Git repo can be automatically applied and reflected in the specified target environments.
[https://argo-cd.readthedocs.io/en/latest/#architecture]

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 6

Components:

  • API Server

The API server is a gRPC/REST server which exposes the API consumed by the Web UI, CLI, and CI/CD systems.

  • Repository Server

The repository server is an internal service which maintains a local cache of the Git repository holding the application manifests. rver is a gRPC/REST server which exposes the API consumed by the Web UI, CLI, and CI/CD systems.

  • Application Controller

The application controller is a Kubernetes controller which continuously monitors running applications and compares the current, live state against the desired target state (as specified in the repo). It detects OutOfSync application state and optionally takes corrective action. It is responsible for invoking any user-defined hooks for lifecycle events (PreSync, Sync, PostSync)
[https://argo-cd.readthedocs.io/en/latest/operator-manual/architecture/#components]

In my case Argo CD compares the current, “live state” of my “kubernetes-quickstart” application in my Kubernetes cluster, against the “desired target state”, as specified in my “kubernetes-quickstart” application in the “kubernetes-quickstart” project in my GitHub Private repository.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 7

As I mentioned before, the content of file application-kubernetes-quickstart.yaml is:
[in bold, I highlighted the SyncPolicy part]

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
    namespace: nl-amis-development
  project: kubernetes-quickstart
  source:
    helm:
      valueFiles:
      - values.yaml
    path: .helm/kubernetes/kubernetes-quickstart
    repoURL: https://github.com/marclameriks/kubernetes-quickstart.git
    targetRevision: HEAD
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    retry:
      backoff:
        duration: 5s
        factor: 2
        maxDuration: 10m
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
    - ApplyOutOfSyncOnly=true

This file contains a syncPolicy with an automated policy, that was set by default, when this Argo CD manifest (yaml) file was generated as part of the Quarkus build.

All these syncPolicy settings in the Argo CD Application manifest (yaml) file above, were generated as part of the Quarkus build. So let’s take a closer look at some of these settings.

Argo CD Automated Sync Policy

Automated Sync Policy

spec:
  syncPolicy:
    automated: {}

Argo CD has the ability to automatically sync an application when it detects differences between the desired manifests in Git, and the live state in the cluster. A benefit of automatic sync is that CI/CD pipelines no longer need direct access to the Argo CD API server to perform the deployment. Instead, the pipeline makes a commit and push to the Git repository with the changes to the manifests in the tracking Git repo.
[https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automated-sync-policy]

Automatic Pruning

spec:
  syncPolicy:
    automated:
      prune: true

By default (and as a safety mechanism), automated sync will not delete resources when Argo CD detects the resource is no longer defined in Git. To prune the resources, a manual sync can always be performed (with pruning checked). Pruning can also be enabled to happen automatically as part of the automated sync by setting the prune option to true in the automated sync policy.
[https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automatic-pruning]

Automatic Self-Healing

spec:
  syncPolicy:
    automated:
      selfHeal: true

By default, changes that are made to the live cluster will not trigger automated sync. To enable automatic sync when the live cluster’s state deviates from the state defined in Git, set the self-heal option to true in the automated sync policy.
[https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automatic-self-healing]

Argo CD Retry Options

Retry

    retry:
      backoff:
        duration: 5s
        factor: 2
        maxDuration: 10m

The “Retry” option in ArgoCD controls whether failed sync operations are automatically retried.
[https://kubernetes-tutorial.schoolofdevops.com/articles/argo_retry_options/]

Argo CD app sync options:

  • retry-backoff-duration (duration)

Retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s)

  • retry-backoff-factor (int)

Factor multiplies the base duration after each failed retry (default 2)

  • retry-backoff-max-duration (duration)

Max retry backoff duration. Input needs to be a duration (e.g. 2m, 1h) (default 3m0s)

  • retry-limit int

Max number of allowed sync retries
[https://argo-cd.readthedocs.io/en/release-2.0/user-guide/commands/argocd_app_sync/#options]

Argo CD Sync Options

Create Namespace

syncPolicy:
…
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
    - ApplyOutOfSyncOnly=true

An Argo CD Application can be configured so it will create the namespace specified in spec.destination.namespace if it doesn’t exist already. Without this, the Application will fail to sync if the namespace doesn’t exist.
[https://argo-cd.readthedocs.io/en/release-2.4/user-guide/sync-options/#create-namespace]

Respect ignore difference configs

syncPolicy:
…
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
    - ApplyOutOfSyncOnly=true

This sync option is used to enable Argo CD to consider the configurations made in the spec.ignoreDifferences attribute also during the sync stage. By default, Argo CD uses the ignoreDifferences config just for computing the diff between the live and desired state which defines if the application is synced or not. However during the sync stage, the desired state is applied as-is. The patch is calculated using a 3-way-merge between the live state the desired state and the last-applied-configuration annotation. This sometimes leads to an undesired results. This behavior can be changed by setting the RespectIgnoreDifferences=true sync option like in the example below:

apiVersion: argoproj.io/v1alpha1
kind: Application
spec:

  ignoreDifferences:
  - group: "apps"
    kind: "Deployment"
    jsonPointers:
    - /spec/replicas

  syncPolicy:
    syncOptions:
    - RespectIgnoreDifferences=true

The example above shows how an ArgoCD Application can be configured so it will ignore the spec.replicas field from the desired state (git) during the sync stage. This is achieved by calculating and pre-patching the desired state before applying it in the cluster. Note that the RespectIgnoreDifferences sync option is only effective when the resource is already created in the cluster. If the Application is being created and no live state exists, the desired state is applied as-is.
[https://argo-cd.readthedocs.io/en/release-2.4/user-guide/sync-options/#respect-ignore-difference-configs]

Selective Sync

syncPolicy:
…
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
    - ApplyOutOfSyncOnly=true

Currently when syncing using auto sync, Argo CD applies this on every object in the application. For applications containing thousands of objects this takes quite a long time and puts undue pressure on the api server. Turning on selective sync option which will sync only out-of-sync resources.

You can add this option by adding ApplyOutOfSyncOnly=true in the manifest.

apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
  syncPolicy:
    syncOptions:
    - ApplyOutOfSyncOnly=true

[https://argo-cd.readthedocs.io/en/release-2.4/user-guide/sync-options/#selective-sync]

Changing the number of replicated Pods (replicas) from 5 to 2 in the “desired state” (Git repo)

As you may remember, a Deployment creates a ReplicaSet that creates a number of replicated Pods, indicated by the .spec.replicas field.
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/]

So, I wanted to make a change in the “desired state” of my “kubernetes-quickstart” application in the “kubernetes-quickstart” project in my GitHub Private repository.

In order to list all deployments in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:

kubectl get deployments -n nl-amis-development

With the following output:

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-quickstart   5/5     5            5           3d13h 

In order to list all replica set’s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/]

kubectl get replicasets -n nl-amis-development

With the following output:

NAME                               DESIRED   CURRENT   READY   AGE
kubernetes-quickstart-547485758b   5         5         5       3d13h
kubernetes-quickstart-65b8454949   0         0         0       26d

First, I checked the current number of Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME                                     READY   STATUS    RESTARTS   AGE
kubernetes-quickstart-547485758b-bc2zq   1/1     Running   0          3d13h
kubernetes-quickstart-547485758b-bp2cj   1/1     Running   0          3d13h
kubernetes-quickstart-547485758b-k5td4   1/1     Running   0          3d13h
kubernetes-quickstart-547485758b-m4d92   1/1     Running   0          3d13h
kubernetes-quickstart-547485758b-zlbhf   1/1     Running   0          3d13h

As you can see in the output above, 5 Pods were running successfully.

With regard to the shared folder, the following directory is present on my Windows laptop:

C:\My\AMIS\MySharedFolder

Next, in the shared folder, I navigated to github\repositories\private\kubernetes-quickstart\src\main\resources and changed the content of file application.properties to:
[in bold, I highlighted the changes]

quarkus.container-image.registry=localhost:8443
quarkus.container-image.username=mylocregusername
quarkus.container-image.password=mylocregpassword
quarkus.container-image.group=quarkus
quarkus.kubernetes.namespace=nl-amis-development
quarkus.kubernetes.ports.”ports”.container-port=8080
quarkus.kubernetes.ports.”ports”.host-port=8180
quarkus.kubernetes.ports.”ports”.node-port=30010
quarkus.kubernetes.replicas=2
quarkus.kubernetes.service-type=node-port
quarkus.helm.output-directory=../.helm
quarkus.argocd.destination-namespace=nl-amis-development

As I did before, in order to generate the Helm resources, I used the following commands on the Linux Command Prompt:

cd /mnt/mysharedfolder/github/repositories/private/kubernetes-quickstart

mvn clean package -DskipTests

In order to check if the change in replicas was noticed, on my Windows laptop, in the shared folder, I checked the content of file github\repositories\private\kubernetes-quickstart\.helm\kubernetes\kubernetes-quickstart\values.yaml:
[in bold, I highlighted the changes]

---
app:
  image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
  ports:
    http: 8080
    ports: 8080
  replicas: 2

So indeed, the replicas were changed from 5 to 2.

By the way, again, the following Argo CD manifest (yaml) files were generated as part of the Quarkus build: application-kubernetes-quickstart.yaml and appproject-kubernetes-quickstart.yaml.

The content of these two files remained the same.

Checking in my code changes in Git

On my Windows laptop, I navigated to folder C:\My\AMIS\MySharedFolder\github\repositories\private\kubernetes-quickstart.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 8

Next, I used TorsoiseGit to commit the files, that were changed in my local working tree. In order to describe the changes I was committing, as a Commit Log Message, I used:

The number of replicated Pods is changed from 5 to 2

Then, I used TorsoiseGit Push, in order to push my commit to the project in my GitHub Private repository.

I logged in into github.com with my own GitHub account, in order to check the project in my GitHub Private repository.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 9

Then, I clicked on the “4 commits” link.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 10

As you can see above, the last commit was visible.

For each of the commits, I copied the full SHA, via the copy icon:

  • 83097dc1ba181767f3a1aec95d342ec1852900dc (Commits on Feb 21, 2026)
  • 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c (Commits on Feb 17, 2026)
  • 121fac97dba6ec580f14ec059606e7b2bd2cf8b8 (Commits on Jan 15, 2026)
  • 9f72f17181617807d01098dcaa0151666f19dbb8 (Commits on Dec 19, 2025)

Next, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 11

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (a month ago)
  • Last Sync: 02/21/2026 15:15:36 (13 minutes ago)

Above you can see the Argo CD kubernetes-quickstart application. Next, I clicked on this application.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 12

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (83097dc)
  • LAST SYNC: Sync OK to 83097dc, Succeeded 3 minutes ago (Sat Feb 21 2026 15:15:36 GMT +0100)

When you look at the “Comment” part, you can see my Commit Log Message, I used earlier.

Next, I clicked on the “Sync OK” link.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 13

Then, I closed the Sync page.

In order to list all deployments in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/]

kubectl get deployments -n nl-amis-development

With the following output:

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-quickstart   2/2     2            2           26d

In order to list all replica set’s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/]

kubectl get replicasets -n nl-amis-development

With the following output:

NAME                               DESIRED   CURRENT   READY   AGE
kubernetes-quickstart-547485758b   0         0         0       3d19h
kubernetes-quickstart-65b8454949   0         0         0       26d
kubernetes-quickstart-7497b84446   2         2         2       4m26s

Next, again I checked the current number of Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME READY STATUS RESTARTS AGE
kubernetes-quickstart-7497b84446-drsck 1/1 Running 0 4m25s
kubernetes-quickstart-7497b84446-t8mrp 1/1 Running 0 4m27s

As you can see in the output above, now only 2 Pods were running successfully, as expected. So, Argo CD automatically synced my application when it detected differences between the “desired state” manifests in Git, and the “live state” in the Kubernetes cluster.

Changing the number of replicated Pods (replicas) from 2 to 3 in the “live state” (Kubernetes cluster)

So, now I wanted to make a change in the “live state” of my “kubernetes-quickstart” application running on my Kubernetes cluster.

[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#scaling-a-deployment]

kubectl scale -n nl-amis-development deployment kubernetes-quickstart --replicas=3

With the following output:

deployment.apps/kubernetes-quickstart scaled

In order to list all deployments in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/]

kubectl get deployments -n nl-amis-development

With the following output:

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-quickstart   2/2     2            2           26d

In order to list all replica set’s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/]

kubectl get replicasets -n nl-amis-development

With the following output:

NAME                               DESIRED   CURRENT   READY   AGE
kubernetes-quickstart-547485758b   0         0         0       3d21h
kubernetes-quickstart-65b8454949   0         0         0       27d
kubernetes-quickstart-7497b84446   2         2         2       104m

Next, again I checked the current number of Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME                                     READY   STATUS    RESTARTS   AGE
kubernetes-quickstart-7497b84446-drsck   1/1     Running   0          104m
kubernetes-quickstart-7497b84446-t8mrp   1/1     Running   0          104m

As you can see in the output above, only 2 Pods were running (the “desired state”) and not the 3 Pods (the “live state”). So apparently the Argo CD automated sync process was successful.

Next, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 14

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (a month ago)
  • Last Sync: 02/21/2026 16:34:20 (a few seconds ago)

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 15

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (83097dc)
  • LAST SYNC: Sync OK to 83097dc, Succeeded a minute ago (Sat Feb 21 2026 16:34:20 GMT+0100)

Later on in this article you can see which commands I use in order to gather more information about the Argo CD automated sync process that just happened. I show you this information now, also for my own convenience.

This is the output from the Argo CD events (only showing a part):

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 16

In the events above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

This is the output, on Feb 21 2026 around 16:34:20 GMT+0100, from the log of the Argo CD Application Controller (only showing a part):

time="2026-02-21T15:34:20Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=OperationStarted type=Normal
time="2026-02-21T15:34:20Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" app-namespace=argocd application=kubernetes-quickstart project=kubernetes-quickstart
time="2026-02-21T15:34:20Z" level=info msg="Updated sync status: Synced -> OutOfSync" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-21T15:34:20Z" level=info msg="Updated health status: Healthy -> Progressing" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
...
time="2026-02-21T15:34:20Z" level=info msg="Updated sync status: OutOfSync -> Synced" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-21T15:34:20Z" level=info msg="Updated health status: Progressing -> Healthy" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

In the log above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

You can also see in the log above the full SHA of the following Git commit, I mentioned earlier:

  • 83097dc1ba181767f3a1aec95d342ec1852900dc (Commits on Feb 21, 2026)

Because the Argo CD sync process, in this case, was not so easy to follow, I decided to make another change (the next day).

Changing the number of replicated Pods (replicas) from 2 to 7 in the “live state” (Kubernetes cluster)

So, now I wanted to make a change in the “live state” of my “kubernetes-quickstart” application running on my Kubernetes cluster.

In order to scale up my deployment from 2 to 7 replicas, I used the following command (on 02/22/2026 around 08:45:45 GMT+0100) on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#scaling-a-deployment]

kubectl scale -n nl-amis-development deployment kubernetes-quickstart --replicas=7

With the following output:

deployment.apps/kubernetes-quickstart scaled

In order to list all deployments in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/]

kubectl get deployments -n nl-amis-development

With the following output:

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-quickstart   2/2     2            2           27d

In order to list all replica set’s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/]

kubectl get replicasets -n nl-amis-development

With the following output:

NAME                               DESIRED   CURRENT   READY   AGE
kubernetes-quickstart-547485758b   0         0         0       4d13h
kubernetes-quickstart-65b8454949   0         0         0       27d
kubernetes-quickstart-7497b84446   2         2         2       17h

Next, again I checked the current number of Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME READY STATUS RESTARTS AGE
kubernetes-quickstart-7497b84446-5lsb2 1/1 Terminating 0 12s
kubernetes-quickstart-7497b84446-7rhjb 1/1 Terminating 0 12s
kubernetes-quickstart-7497b84446-drsck 1/1 Running 0 17h
kubernetes-quickstart-7497b84446-ft6vl 1/1 Terminating 0 12s
kubernetes-quickstart-7497b84446-hmxps 1/1 Terminating 0 12s
kubernetes-quickstart-7497b84446-t8mrp 1/1 Running 0 17h

So, in the output above we can see that the Argo CD automated sync process is started. From the 7 pods, 1 is already deleted, and 4 more are being terminated and 2 are left running.

And after some time, I repeated the command, with the following output:

NAME                                     READY   STATUS    RESTARTS   AGE
kubernetes-quickstart-7497b84446-drsck   1/1     Running   0          17h
kubernetes-quickstart-7497b84446-t8mrp   1/1     Running   0          17h

As you can see in the output above, now again only 2 Pods were running, as expected.

Next, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 17

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (a month ago)
  • Last Sync: 02/22/2026 08:45:45 (3 minutes ago)

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 18

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (83097dc)
  • LAST SYNC: Sync OK to 83097dc, Succeeded 5 minutes ago (Sun Feb 22 2026 08:45:45 GMT+0100)

I also had a look at the Argo CD events.

In order to list the Argo CD events, I used the following command on the Linux Command Prompt:

kubectl get events -n argocd

With the following output (only showing a part):

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 19

In the events above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

I also had a look at the Argo CD logs.

First, in order to get the name of the Argo CD Application Controller, I used the following command on the Linux Command Prompt:

kubectl get pods -n argocd

With the following output:

NAME                                                       READY   STATUS    RESTARTS        AGE
argo-cd-argocd-application-controller-0                    1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-applicationset-controller-d95667bb6-2sd4l   1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-dex-server-5db69dd4c5-5h27c                 1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-notifications-controller-b7fb4658b-fcth9    1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-redis-64744bd689-bdqk4                      1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-repo-server-6989765765-k47fw                1/1     Running   2 (4d22h ago)   39d
argo-cd-argocd-server-75d7874dcb-qq5jp                     1/1     Running   2 (4d22h ago)   39d

Then, in order to get the log of the Argo CD Application Controller, I used the following command on the Linux Command Prompt:

kubectl logs -n argocd argo-cd-argocd-application-controller-0

With the following output, on Feb 22 2026 around 08:45:45 GMT+0100 (only showing a part):

time="2026-02-22T07:45:43Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=OperationStarted type=Normal
time="2026-02-22T07:45:43Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" app-namespace=argocd application=kubernetes-quickstart project=kubernetes-quickstart
time="2026-02-22T07:45:43Z" level=info msg="Updated sync status: Synced -> OutOfSync" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-22T07:45:43Z" level=info msg="Updated health status: Healthy -> Progressing" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
...
time="2026-02-22T07:45:45Z" level=info msg="Updated sync status: OutOfSync -> Synced" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
...
time="2026-02-22T07:45:46Z" level=info msg="Updated health status: Progressing -> Healthy" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

In the log above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

So again, the Argo CD automated sync process was successful, only 2 Pods were running (the “desired state”) and not the 7 Pods (the “live state”).

Changing the “live state” (Kubernetes cluster), by deleting my kubernetes-quickstart service

So, again I wanted to make a change in the “live state” of my “kubernetes-quickstart” application running on my Kubernetes cluster, this time by deleting my kubernetes-quickstart service.

In order to delete my kubernetes-quickstart service, I used the following command on the Linux Command Prompt:

kubectl delete -n nl-amis-development service kubernetes-quickstart

With the following output:

service "kubernetes-quickstart" deleted

In order to check my kubernetes-quickstart service, I used the following command on the Linux Command Prompt:

kubectl get services -n nl-amis-development

With the following output:

NAME                    TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
kubernetes-quickstart   NodePort   10.43.85.5   <none>        8180:30010/TCP   4s

As you can see in the output above, this service was just created, as part of the Argo CD automated sync process.

Next, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 20

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (a month ago)
  • Last Sync: 02/23/2026 17:23:38 (a minute ago)

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 21

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (83097dc)
  • LAST SYNC: Sync OK to 83097dc, Succeeded a minute ago (Mon Feb 23 2026 17:23:38 GMT+0100)

Again, I had a look at the Argo CD events.

In order to list the Argo CD events, I used the following command on the Linux Command Prompt:

kubectl get events -n argocd

With the following output (only showing a part):

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 22

In the events above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Missing and later on from Misssing -> Healthy.

I also had a look at the Argo CD logs.

In order to get the log of the Argo CD Application Controller, I used the following command on the Linux Command Prompt:

kubectl logs -n argocd argo-cd-argocd-application-controller-0

With the following output, around Feb 23 2026 17:23:38 GMT+0100 (only showing a part):

time="2026-02-23T16:23:38Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=OperationStarted type=Normal
time="2026-02-23T16:23:38Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" app-namespace=argocd application=kubernetes-quickstart project=kubernetes-quickstart
time="2026-02-23T16:23:38Z" level=info msg="Updated sync status: Synced -> OutOfSync" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-23T16:23:38Z" level=info msg="Updated health status: Healthy -> Missing" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
...
time="2026-02-23T16:23:38Z" level=info msg="Adding resource result, status: 'Synced', phase: 'Running', message: 'service/kubernetes-quickstart created'" app-namespace=argocd application=kubernetes-quickstart kind=Service name=kubernetes-quickstart namespace=nl-amis-development phase=Sync project=kubernetes-quickstart syncId=00005-QQwvK
...
time="2026-02-23T16:23:38Z" level=info msg="Updated sync status: OutOfSync -> Synced" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-23T16:23:38Z" level=info msg="Updated health status: Missing -> Healthy" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

In the log above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Missing and later on from Misssing -> Healthy.

So again, the Argo CD automated sync process was successful, the deleted service was automatically created again.

Changing a particular Pod in the “live state” (Kubernetes cluster)

Next, again I wanted to make a change in the “live state” of my “kubernetes-quickstart” application running on my Kubernetes cluster. This time, I wanted to use a ConfigMap within an existing Pod.

Creating a ConfigMap

A ConfigMap is an API object used to store non-confidential data in key-value pairs. Pods can consume ConfigMaps as environment variables, command-line arguments, or as configuration files in a volume.
A ConfigMap allows you to decouple environment-specific configuration from your container images, so that your applications are easily portable.
[https://kubernetes.io/docs/concepts/configuration/configmap/]

On my Windows laptop, in subdirectory named yaml of my shared folder, I created file configmap-kubernetes-quickstart.yaml with the following content:

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap-kubernetes-quickstart
  namespace: nl-amis-development
data:
  my_key_1: "value_of_my_key_1"
  my_key_2: "value_of_my_key_2"
  my_key_3: "value_of_my_key_3"

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 23

In order to create a ConfigMap, I used the following commands on the Linux Command Prompt:

cd /mnt/mysharedfolder
kubectl apply -f yaml/configmap-kubernetes-quickstart.yaml

With the following output:

configmap/configmap-kubernetes-quickstart created

In order to list all config map’ s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:

kubectl get configmaps -n nl-amis-development

With the following output:

NAME                              DATA   AGE
configmap-kubernetes-quickstart   3      35s
kube-root-ca.crt                  1      195d

Changing a Pod’s manifest (yaml) file

Next, I checked again, the current Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME                                     READY   STATUS    RESTARTS   AGE
kubernetes-quickstart-7497b84446-drsck   1/1     Running   0          3d4h
kubernetes-quickstart-7497b84446-t8mrp   1/1     Running   0          3d4h

In order to list a single pod in JSON output format and save the output to a file, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/]

kubectl get pod kubernetes-quickstart-7497b84446-drsck -n nl-amis-development -o yaml > yaml/kubernetes-quickstart-7497b84446-drsck.yaml

Remark about option -o, –output string:
Output format. One of: (json, yaml, kyaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file, custom-columns, custom-columns-file, wide). See custom columns [https://kubernetes.io/docs/reference/kubectl/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [https://kubernetes.io/docs/reference/kubectl/jsonpath/].
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/#options]

Next, in the shared folder, I navigated to yaml and changed the content of file kubernetes-quickstart-7497b84446-drsck.yaml to:
[in bold, I highlighted the changes]

apiVersion: v1
kind: Pod
metadata:
  annotations:
    app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
    app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
    app.quarkus.io/quarkus-version: 3.25.2
    app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
  creationTimestamp: "2026-02-21T14:15:38Z"
  generateName: kubernetes-quickstart-7497b84446-
  generation: 1
  labels:
    app.kubernetes.io/managed-by: quarkus
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
    pod-template-hash: 7497b84446
  name: kubernetes-quickstart-7497b84446-drsck
  namespace: nl-amis-development
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kubernetes-quickstart-7497b84446
    uid: 76ac41eb-6b56-46db-bf14-aba99509ccc3
  resourceVersion: "119893"
  uid: 4dc0ee7c-b1de-4dbd-81c9-1028761743ff
spec:
  containers:
  - env:
    - name: KUBERNETES_NAMESPACE
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.namespace
    - name: CONFIGMAP_KUBERNETES-QUICKSTART_MY_KEY_1
      valueFrom:
        configMapKeyRef:
          name: configmap-kubernetes-quickstart
          key: my_key_1
    image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
    imagePullPolicy: Always
    name: kubernetes-quickstart
    ports:
    - containerPort: 8080
      name: ports
      protocol: TCP
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-mvk7z
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  nodeName: ubuntu2204.localdomain
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: kubernetes-quickstart
  serviceAccountName: kubernetes-quickstart
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: kube-api-access-mvk7z
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2026-02-21T14:15:40Z"
    status: "True"
    type: PodReadyToStartContainers
  - lastProbeTime: null
    lastTransitionTime: "2026-02-21T14:15:38Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-02-21T14:15:40Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-02-21T14:15:40Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-02-21T14:15:38Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://967622590398c8db356fbf99830fd391fa0a44ea839205442730f07287c4d647
    image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
    imageID: localhost:8443/quarkus/kubernetes-quickstart@sha256:4db2c4311d63394b0b36b8a8d45301b74d3b8305c294d028b59496c69b3840ab
    lastState: {}
    name: kubernetes-quickstart
    ready: true
    resources: {}
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-02-21T14:15:40Z"
    user:
      linux:
        gid: 0
        supplementalGroups:
        - 0
        uid: 185
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-mvk7z
      readOnly: true
      recursiveReadOnly: Disabled
  hostIP: 10.0.2.15
  hostIPs:
  - ip: 10.0.2.15
  phase: Running
  podIP: 10.42.0.189
  podIPs:
  - ip: 10.42.0.189
  qosClass: BestEffort
  startTime: "2026-02-21T14:15:38Z"

In order to use a ConfigMap (configmap-kubernetes-quickstart) in an environment variable in a Pod, for the container in my Pod specification, I added an environment variable (CONFIGMAP_KUBERNETES-QUICKSTART_MY_KEY_1) for the ConfigMap key (my_key_1) that I wanted to use.
[https://kubernetes.io/docs/concepts/configuration/configmap/#using-configmaps-as-environment-variables]

In order to change the Pod, I used the following command on the Linux Command Prompt:

kubectl apply -f yaml/kubernetes-quickstart-7497b84446-drsck.yaml

With the following output:

Warning: resource pods/kubernetes-quickstart-7497b84446-drsck is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
The Pod "kubernetes-quickstart-7497b84446-drsck" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`,`spec.initContainers[*].image`,`spec.activeDeadlineSeconds`,`spec.tolerations` (only additions to existing tolerations),`spec.terminationGracePeriodSeconds` (allow it to be set to 1 if it was previously negative)
  core.PodSpec{
        Volumes:        {{Name: "kube-api-access-mvk7z", VolumeSource: {Projected: &{Sources: {{ServiceAccountToken: &{ExpirationSeconds: 3607, Path: "token"}}, {ConfigMap: &{LocalObjectReference: {Name: "kube-root-ca.crt"}, Items: {{Key: "ca.crt", Path: "ca.crt"}}}}, {DownwardAPI: &{Items: {{Path: "namespace", FieldRef: &{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}}}, DefaultMode: &420}}}},
        InitContainers: nil,
        Containers: []core.Container{
                {
                        ... // 5 identical fields
                        Ports:   {{Name: "ports", ContainerPort: 8080, Protocol: "TCP"}},
                        EnvFrom: nil,
                        Env: []core.EnvVar{
                                {Name: "KUBERNETES_NAMESPACE", ValueFrom: &{FieldRef: &{APIVersion: "v1", FieldPath: "metadata.namespace"}}},
+                               {
+                                       Name: "CONFIGMAP_MY_KEY_1",
+                                       ValueFrom: &core.EnvVarSource{
+                                               ConfigMapKeyRef: &core.ConfigMapKeySelector{LocalObjectReference: core.LocalObjectReference{...}, Key: "my_key_1"},
+                                       },
+                               },
                        },
                        Resources:    {},
                        ResizePolicy: nil,
                        ... // 14 identical fields
                },
        },
        EphemeralContainers: nil,
        RestartPolicy:       "Always",
        ... // 29 identical fields
  }

So, making this change on Pod level did not work, because of the missing kubectl.kubernetes.io/last-applied-configuration annotation in the resource.
[https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/#how-to-create-objects]

Changing the Deployment

Next, I tried changing the Deployment.

In order to edit the Deployment in YAML, using “nano” as an alternative editor, and save the modified config in its annotation, I used the following command on the Linux Command Prompt:

KUBE_EDITOR="nano" kubectl edit -n nl-amis-development deployment/kubernetes-quickstart -o yaml --save-config

The edit command allows you to directly edit any API resource you can retrieve via the command-line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR environment variables, or fall back to ‘vi’ for Linux or ‘notepad’ for Windows.
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_edit/]

Remark about option -o, –output string:
Output format. One of: (json, yaml, kyaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file).
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/#options]

Remark about option –save-config:
If true, the configuration of current object will be saved in its annotation. Otherwise, the annotation will be unchanged. This flag is useful when you want to perform kubectl apply on this object in the future.
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_edit/#options]

This opened the “nano” editor. I changed the content by adding the environment variable CONFIGMAP-KUBERNETES-QUICKSTART.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 24

This is the output (for readability I formatted the JSON part at kubectl.kubernetes.io/last-applied-configuration):

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
    app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
    app.quarkus.io/quarkus-version: 3.25.2
    app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
    argocd.argoproj.io/tracking-id: kubernetes-quickstart:apps/Deployment:nl-amis-development/kubernetes-quickstart
    deployment.kubernetes.io/revision: "4"
    kubectl.kubernetes.io/last-applied-configuration: |
      {
    "apiVersion": "apps/v1",
    "kind": "Deployment",
    "metadata": {
        "annotations": {
            "app.quarkus.io/build-timestamp": "2026-02-21 - 13:30:26 +0000",
            "app.quarkus.io/commit-id": "96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c",
            "app.quarkus.io/quarkus-version": "3.25.2",
            "app.quarkus.io/vcs-uri": "https://github.com/marclameriks/kubernetes-quickstart.git",
            "argocd.argoproj.io/tracking-id": "kubernetes-quickstart:apps/Deployment:nl-amis-development/kubernetes-quickstart",
            "deployment.kubernetes.io/revision": "4"
        },
        "creationTimestamp": "2026-01-25T15:40:22Z",
        "generation": 8,
        "labels": {
            "app.kubernetes.io/managed-by": "quarkus",
            "app.kubernetes.io/name": "kubernetes-quickstart",
            "app.kubernetes.io/version": "1.0.0-SNAPSHOT"
        },
        "managedFields": [
            {
                "apiVersion": "apps/v1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:metadata": {
                        "f:annotations": {
                            ".": {},
                            "f:app.quarkus.io/build-timestamp": {},
                            "f:app.quarkus.io/commit-id": {},
                            "f:app.quarkus.io/quarkus-version": {},
                            "f:app.quarkus.io/vcs-uri": {},
                            "f:argocd.argoproj.io/tracking-id": {},
                            "f:kubectl.kubernetes.io/last-applied-configuration": {}
                        },
                        "f:labels": {
                            ".": {},
                            "f:app.kubernetes.io/managed-by": {},
                            "f:app.kubernetes.io/name": {},
                            "f:app.kubernetes.io/version": {}
                        }
                    },
                    "f:spec": {
                        "f:progressDeadlineSeconds": {},
                        "f:replicas": {},
                        "f:revisionHistoryLimit": {},
                        "f:selector": {},
                        "f:strategy": {
                            "f:rollingUpdate": {
                                ".": {},
                                "f:maxSurge": {},
                                "f:maxUnavailable": {}
                            },
                            "f:type": {}
                        },
                        "f:template": {
                            "f:metadata": {
                                "f:annotations": {
                                    ".": {},
                                    "f:app.quarkus.io/build-timestamp": {},
                                    "f:app.quarkus.io/commit-id": {},
                                    "f:app.quarkus.io/quarkus-version": {},
                                    "f:app.quarkus.io/vcs-uri": {}
                                },
                                "f:labels": {
                                    ".": {},
                                    "f:app.kubernetes.io/managed-by": {},
                                    "f:app.kubernetes.io/name": {},
                                    "f:app.kubernetes.io/version": {}
                                }
                            },
                            "f:spec": {
                                "f:containers": {
                                    "k:{\"name\":\"kubernetes-quickstart\"}": {
                                        ".": {},
                                        "f:env": {
                                            ".": {},
                                            "k:{\"name\":\"KUBERNETES_NAMESPACE\"}": {
                                                ".": {},
                                                "f:name": {},
                                                "f:valueFrom": {
                                                    ".": {},
                                                    "f:fieldRef": {}
                                                }
                                            }
                                        },
                                        "f:image": {},
                                        "f:imagePullPolicy": {},
                                        "f:name": {},
                                        "f:ports": {
                                            ".": {},
                                            "k:{\"containerPort\":8080,\"protocol\":\"TCP\"}": {
                                                ".": {},
                                                "f:containerPort": {},
                                                "f:name": {},
                                                "f:protocol": {}
                                            }
                                        },
                                        "f:resources": {},
                                        "f:terminationMessagePath": {},
                                        "f:terminationMessagePolicy": {}
                                    }
                                },
                                "f:dnsPolicy": {},
                                "f:restartPolicy": {},
                                "f:schedulerName": {},
                                "f:securityContext": {},
                                "f:serviceAccount": {},
                                "f:serviceAccountName": {},
                                "f:terminationGracePeriodSeconds": {}
                            }
                        }
                    }
                },
                "manager": "argocd-controller",
                "operation": "Update",
                "time": "2026-02-22T07:45:45Z"
            },
            {
                "apiVersion": "apps/v1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:spec": {
                        "f:template": {
                            "f:spec": {
                                "f:containers": {
                                    "k:{\"name\":\"kubernetes-quickstart\"}": {
                                        "f:env": {
                                            "k:{\"name\":\"CONFIGMAP_KUBERNETES-QUICKSTART_MY_KEY_1\"}": {
                                                ".": {},
                                                "f:name": {},
                                                "f:valueFrom": {
                                                    ".": {},
                                                    "f:configMapKeyRef": {}
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "manager": "kubectl-edit",
                "operation": "Update",
                "time": "2026-02-25T07:04:45Z"
            },
            {
                "apiVersion": "apps/v1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:metadata": {
                        "f:annotations": {
                            "f:deployment.kubernetes.io/revision": {}
                        }
                    },
                    "f:status": {
                        "f:availableReplicas": {},
                        "f:conditions": {
                            ".": {},
                            "k:{\"type\":\"Available\"}": {
                                ".": {},
                                "f:lastTransitionTime": {},
                                "f:lastUpdateTime": {},
                                "f:message": {},
                                "f:reason": {},
                                "f:status": {},
                                "f:type": {}
                            },
                            "k:{\"type\":\"Progressing\"}": {
                                ".": {},
                                "f:lastTransitionTime": {},
                                "f:lastUpdateTime": {},
                                "f:message": {},
                                "f:reason": {},
                                "f:status": {},
                                "f:type": {}
                            }
                        },
                        "f:observedGeneration": {},
                        "f:readyReplicas": {},
                        "f:replicas": {},
                        "f:updatedReplicas": {}
                    }
                },
                "manager": "k3s",
                "operation": "Update",
                "subresource": "status",
                "time": "2026-02-25T07:04:50Z"
            }
        ],
        "name": "kubernetes-quickstart",
        "namespace": "nl-amis-development",
        "resourceVersion": "120986",
        "uid": "3f7f0851-b1eb-4b4c-a07d-188f82f21b3c"
    },
    "spec": {
        "progressDeadlineSeconds": 600,
        "replicas": 2,
        "revisionHistoryLimit": 10,
        "selector": {
            "matchLabels": {
                "app.kubernetes.io/name": "kubernetes-quickstart",
                "app.kubernetes.io/version": "1.0.0-SNAPSHOT"
            }
        },
        "strategy": {
            "rollingUpdate": {
                "maxSurge": "25%",
                "maxUnavailable": "25%"
            },
            "type": "RollingUpdate"
        },
        "template": {
            "metadata": {
                "annotations": {
                    "app.quarkus.io/build-timestamp": "2026-02-21 - 13:30:26 +0000",
                    "app.quarkus.io/commit-id": "96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c",
                    "app.quarkus.io/quarkus-version": "3.25.2",
                    "app.quarkus.io/vcs-uri": "https://github.com/marclameriks/kubernetes-quickstart.git"
                },
                "creationTimestamp": null,
                "labels": {
                    "app.kubernetes.io/managed-by": "quarkus",
                    "app.kubernetes.io/name": "kubernetes-quickstart",
                    "app.kubernetes.io/version": "1.0.0-SNAPSHOT"
                }
            },
            "spec": {
                "containers": [
                    {
                        "env": [
                            {
                                "name": "KUBERNETES_NAMESPACE",
                                "valueFrom": {
                                    "fieldRef": {
                                        "apiVersion": "v1",
                                        "fieldPath": "metadata.namespace"
                                    }
                                }
                            },
                            {
                                "name": "CONFIGMAP-KUBERNETES-QUICKSTART",
                                "valueFrom": {
                                    "configMapKeyRef": {
                                        "key": "my_key_1",
                                        "name": "configmap-kubernetes-quickstart"
                                    }
                                }
                            }
                        ],
                        "image": "localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT",
                        "imagePullPolicy": "Always",
                        "name": "kubernetes-quickstart",
                        "ports": [
                            {
                                "containerPort": 8080,
                                "name": "ports",
                                "protocol": "TCP"
                            }
                        ],
                        "resources": {},
                        "terminationMessagePath": "/dev/termination-log",
                        "terminationMessagePolicy": "File"
                    }
                ],
                "dnsPolicy": "ClusterFirst",
                "restartPolicy": "Always",
                "schedulerName": "default-scheduler",
                "securityContext": {},
                "serviceAccount": "kubernetes-quickstart",
                "serviceAccountName": "kubernetes-quickstart",
                "terminationGracePeriodSeconds": 30
            }
        }
    },
    "status": {
        "availableReplicas": 2,
        "conditions": [
            {
                "lastTransitionTime": "2026-02-24T19:01:47Z",
                "lastUpdateTime": "2026-02-24T19:01:47Z",
                "message": "Deployment has minimum availability.",
                "reason": "MinimumReplicasAvailable",
                "status": "True",
                "type": "Available"
            },
            {
                "lastTransitionTime": "2026-01-25T15:40:22Z",
                "lastUpdateTime": "2026-02-25T07:04:50Z",
                "message": "ReplicaSet \"kubernetes-quickstart-77cd5f6ff4\" has successfully progressed.",
                "reason": "NewReplicaSetAvailable",
                "status": "True",
                "type": "Progressing"
            }
        ],
        "observedGeneration": 8,
        "readyReplicas": 2,
        "replicas": 2,
        "updatedReplicas": 2
    }
}
  creationTimestamp: "2026-01-25T15:40:22Z"
  generation: 9
  labels:
    app.kubernetes.io/managed-by: quarkus
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
  name: kubernetes-quickstart
  namespace: nl-amis-development
  resourceVersion: "121283"
  uid: 3f7f0851-b1eb-4b4c-a07d-188f82f21b3c
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: kubernetes-quickstart
      app.kubernetes.io/version: 1.0.0-SNAPSHOT
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
        app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
        app.quarkus.io/quarkus-version: 3.25.2
        app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
      creationTimestamp: null
      labels:
        app.kubernetes.io/managed-by: quarkus
        app.kubernetes.io/name: kubernetes-quickstart
        app.kubernetes.io/version: 1.0.0-SNAPSHOT
    spec:
      containers:
      - env:
        - name: KUBERNETES_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: CONFIGMAP_KUBERNETES-QUICKSTART_MY_KEY_1
          valueFrom:
            configMapKeyRef:
              key: my_key_1
              name: configmap-kubernetes-quickstart
        image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
        imagePullPolicy: Always
        name: kubernetes-quickstart
        ports:
        - containerPort: 8080
          name: ports
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: kubernetes-quickstart
      serviceAccountName: kubernetes-quickstart
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 2
  conditions:
  - lastTransitionTime: "2026-02-24T19:01:47Z"
    lastUpdateTime: "2026-02-24T19:01:47Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2026-01-25T15:40:22Z"
    lastUpdateTime: "2026-02-25T07:04:50Z"
    message: ReplicaSet "kubernetes-quickstart-77cd5f6ff4" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 8
  readyReplicas: 2
  replicas: 2
  updatedReplicas: 2

Then I used Ctrl+O, Offer to write file (“Save as”).
[https://www.nano-editor.org/dist/latest/cheatsheet.html]

Remark:
^ is <Ctrl>
M is <Alt>

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 25

After an <Enter> to confirm the file name, I used Ctrl+X, Close buffer, exit from nano.
[https://www.nano-editor.org/dist/latest/cheatsheet.html]

In order to list all deployments in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/deployment/]

kubectl get deployments -n nl-amis-development

With the following output:

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-quickstart   2/2     2            2           30d

In order to list all replica set’s in the nl-amis-development namespace, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/]

kubectl get replicasets -n nl-amis-development

With the following output:

kubectl get replicasets -n nl-amis-development
NAME                               DESIRED   CURRENT   READY   AGE
kubernetes-quickstart-547485758b   0         0         0       7d12h
kubernetes-quickstart-65b8454949   0         0         0       30d
kubernetes-quickstart-7497b84446   2         2         2       3d17h
kubernetes-quickstart-77cd5f6ff4   0         0         0       19m
kubernetes-quickstart-844884d85b   0         0         0       4m5s

Next, again I checked the current number of Pods that were running, with the following command on the Linux Command Prompt:

kubectl get pods -n nl-amis-development

With the following output:

NAME                                     READY   STATUS    RESTARTS   AGE
kubernetes-quickstart-7497b84446-5fjw8   1/1     Running   0          4m4s
kubernetes-quickstart-7497b84446-xqdzl   1/1     Running   0          4m3s

Next, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 26

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • Created: 01/25/2026 16:40:17 (a month ago)
  • Last Sync: 02/25/2026 08:19:41 (a minute ago)

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 27

This is some of the information mentioned for the Argo CD kubernetes-quickstart application:

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (83097dc)
  • LAST SYNC: Sync OK to 83097dc, Succeeded 8 minutes ago (Wed Feb 25 2026 08:19:41 GMT+0100)

Again, I had a look at the Argo CD events.

In order to list the Argo CD events, I used the following command on the Linux Command Prompt:

kubectl get events -n argocd

With the following output (only showing a part):

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 5) lameriks 2026 03 28

In the events above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

I also had a look at the Argo CD logs.

In order to get the log of the Argo CD Application Controller, I used the following command on the Linux Command Prompt:

kubectl logs -n argocd argo-cd-argocd-application-controller-0

With the following output, around Feb 25 2026 08:19:41 GMT+0100 (only showing a part):

time="2026-02-25T07:19:41Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=OperationStarted type=Normal
time="2026-02-25T07:19:41Z" level=info msg="Initiated automated sync to [83097dc1ba181767f3a1aec95d342ec1852900dc]" app-namespace=argocd application=kubernetes-quickstart project=kubernetes-quickstart
time="2026-02-25T07:19:41Z" level=info msg="Updated sync status: Synced -> OutOfSync" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal
time="2026-02-25T07:19:41Z" level=info msg="Updated health status: Healthy -> Progressing" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

time="2026-02-25T07:19:42Z" level=info msg="Updated sync status: OutOfSync -> Synced" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

time="2026-02-25T07:19:48Z" level=info msg="Updated health status: Progressing -> Healthy" application=kubernetes-quickstart dest-namespace=nl-amis-development dest-server="https://kubernetes.default.svc" reason=ResourceUpdated type=Normal

In the log above, we can see the Argo CD automated sync process is started. The sync status is changed from Synced -> OutOfSync and later on from OutOfSync -> Synced. The health status is changed from Healthy -> Progressing and later on from Progressing -> Healthy.

So again, the Argo CD automated sync process was successful, the change of a particular Pod in the “live state” was reversed.

Next, I also wanted to check the log of the Pod.

In order to print the logs for the container in a specific pod, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_logs/]

kubectl logs -n nl-amis-development kubernetes-quickstart-7497b84446-5fjw8

With the following output:

INFO exec -a "java" java -XX:MaxRAMPercentage=80.0 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:+ExitOnOutOfMemoryError -Djava.util.logging.manager=org.jboss.logmanager.LogManager -cp "." -jar /home/jboss/quarkus-run.jar
INFO running in /home/jboss
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2026-02-25 07:19:49,305 INFO  [io.quarkus] (main) kubernetes-quickstart 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.25.2) started in 5.129s. Listening on: http://0.0.0.0:8080
2026-02-25 07:19:49,314 INFO  [io.quarkus] (main) Profile prod activated.
2026-02-25 07:19:49,314 INFO  [io.quarkus] (main) Installed features: [argocd, cdi, kubernetes, kubernetes-client, rest, smallrye-context-propagation, vertx]

So, in the log above, we can see the Pod started at 2026-02-25 07:19:49,305, at the same time (Wed Feb 25 2026 08:19:41 GMT+0100) that the Argo CD automated sync process was started.

Then, in order to get the YAML (with object information) for a particular Pod, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/]

kubectl get pod kubernetes-quickstart-7497b84446-5fjw8 -n nl-amis-development -o yaml

With the following output:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
    app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
    app.quarkus.io/quarkus-version: 3.25.2
    app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
  creationTimestamp: "2026-02-25T07:19:42Z"
  generateName: kubernetes-quickstart-7497b84446-
  generation: 1
  labels:
    app.kubernetes.io/managed-by: quarkus
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
    pod-template-hash: 7497b84446
  name: kubernetes-quickstart-7497b84446-5fjw8
  namespace: nl-amis-development
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kubernetes-quickstart-7497b84446
    uid: 76ac41eb-6b56-46db-bf14-aba99509ccc3
  resourceVersion: "121338"
  uid: d1bec4bf-636f-4033-971f-e75a8e278a51
spec:
  containers:
  - env:
    - name: KUBERNETES_NAMESPACE
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.namespace
    image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
    imagePullPolicy: Always
    name: kubernetes-quickstart
    ports:
    - containerPort: 8080
      name: ports
      protocol: TCP
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-4c4z7
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  nodeName: ubuntu2204.localdomain
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: kubernetes-quickstart
  serviceAccountName: kubernetes-quickstart
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: kube-api-access-4c4z7
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2026-02-25T07:19:43Z"
    status: "True"
    type: PodReadyToStartContainers
  - lastProbeTime: null
    lastTransitionTime: "2026-02-25T07:19:42Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-02-25T07:19:43Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-02-25T07:19:43Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-02-25T07:19:42Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://5fb0134fc6f1fd4e08e9bdd6084a1bb28ed0b7b931053a0e7362f6fa2958fe75
    image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
    imageID: localhost:8443/quarkus/kubernetes-quickstart@sha256:4db2c4311d63394b0b36b8a8d45301b74d3b8305c294d028b59496c69b3840ab
    lastState: {}
    name: kubernetes-quickstart
    ready: true
    resources: {}
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-02-25T07:19:43Z"
    user:
      linux:
        gid: 0
        supplementalGroups:
        - 0
        uid: 185
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-4c4z7
      readOnly: true
      recursiveReadOnly: Disabled
  hostIP: 10.0.2.15
  hostIPs:
  - ip: 10.0.2.15
  phase: Running
  podIP: 10.42.0.199
  podIPs:
  - ip: 10.42.0.199
  qosClass: BestEffort
  startTime: "2026-02-25T07:19:42Z"

As you can see in the output above, the environment variable CONFIGMAP_KUBERNETES-QUICKSTART_MY_KEY_1 isn’t used anymore.

And finally, in order to get the YAML (with object information, including managed fields) for a particular Deployment, I used the following command on the Linux Command Prompt:
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/]

kubectl get deployment kubernetes-quickstart -n nl-amis-development -o yaml --show-managed-fields

Remark about option –show-managed-fields:
If true, keep the managedFields when printing objects in JSON or YAML format.
[https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/#options]

Note:
kubectl get omits managed fields by default. Add –show-managed-fields to show managedFields when the output format is either json or yaml.
[https://kubernetes.io/docs/reference/using-api/server-side-apply/]

With the following output:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
    app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
    app.quarkus.io/quarkus-version: 3.25.2
    app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
    argocd.argoproj.io/tracking-id: kubernetes-quickstart:apps/Deployment:nl-amis-development/kubernetes-quickstart
    deployment.kubernetes.io/revision: "6"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"app.quarkus.io/build-timestamp":"2026-02-21 - 13:30:26 +0000","app.quarkus.io/commit-id":"96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c","app.quarkus.io/quarkus-version":"3.25.2","app.quarkus.io/vcs-uri":"https://github.com/marclameriks/kubernetes-quickstart.git","argocd.argoproj.io/tracking-id":"kubernetes-quickstart:apps/Deployment:nl-amis-development/kubernetes-quickstart"},"labels":{"app.kubernetes.io/managed-by":"quarkus","app.kubernetes.io/name":"kubernetes-quickstart","app.kubernetes.io/version":"1.0.0-SNAPSHOT"},"name":"kubernetes-quickstart","namespace":"nl-amis-development"},"spec":{"replicas":2,"selector":{"matchLabels":{"app.kubernetes.io/name":"kubernetes-quickstart","app.kubernetes.io/version":"1.0.0-SNAPSHOT"}},"template":{"metadata":{"annotations":{"app.quarkus.io/build-timestamp":"2026-02-21 - 13:30:26 +0000","app.quarkus.io/commit-id":"96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c","app.quarkus.io/quarkus-version":"3.25.2","app.quarkus.io/vcs-uri":"https://github.com/marclameriks/kubernetes-quickstart.git"},"labels":{"app.kubernetes.io/managed-by":"quarkus","app.kubernetes.io/name":"kubernetes-quickstart","app.kubernetes.io/version":"1.0.0-SNAPSHOT"}},"spec":{"containers":[{"env":[{"name":"KUBERNETES_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}],"image":"localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT","imagePullPolicy":"Always","name":"kubernetes-quickstart","ports":[{"containerPort":8080,"name":"ports","protocol":"TCP"}]}],"serviceAccountName":"kubernetes-quickstart"}}},"status":{"availableReplicas":2,"conditions":[{"lastTransitionTime":"2026-02-24T19:01:47Z","lastUpdateTime":"2026-02-24T19:01:47Z","message":"Deployment has minimum availability.","reason":"MinimumReplicasAvailable","status":"True","type":"Available"},{"lastTransitionTime":"2026-01-25T15:40:22Z","lastUpdateTime":"2026-02-25T07:19:41Z","message":"Created new replica set \"kubernetes-quickstart-844884d85b\"","reason":"NewReplicaSetCreated","status":"True","type":"Progressing"}],"observedGeneration":9,"readyReplicas":2,"replicas":3,"unavailableReplicas":1,"updatedReplicas":1}}
  creationTimestamp: "2026-01-25T15:40:22Z"
  generation: 10
  labels:
    app.kubernetes.io/managed-by: quarkus
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
  managedFields:
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:app.quarkus.io/build-timestamp: {}
          f:app.quarkus.io/commit-id: {}
          f:app.quarkus.io/quarkus-version: {}
          f:app.quarkus.io/vcs-uri: {}
          f:argocd.argoproj.io/tracking-id: {}
          f:kubectl.kubernetes.io/last-applied-configuration: {}
        f:labels:
          .: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/version: {}
      f:spec:
        f:progressDeadlineSeconds: {}
        f:replicas: {}
        f:revisionHistoryLimit: {}
        f:selector: {}
        f:strategy:
          f:rollingUpdate:
            .: {}
            f:maxSurge: {}
            f:maxUnavailable: {}
          f:type: {}
        f:template:
          f:metadata:
            f:annotations:
              .: {}
              f:app.quarkus.io/build-timestamp: {}
              f:app.quarkus.io/commit-id: {}
              f:app.quarkus.io/quarkus-version: {}
              f:app.quarkus.io/vcs-uri: {}
            f:labels:
              .: {}
              f:app.kubernetes.io/managed-by: {}
              f:app.kubernetes.io/name: {}
              f:app.kubernetes.io/version: {}
          f:spec:
            f:containers:
              k:{"name":"kubernetes-quickstart"}:
                .: {}
                f:env:
                  .: {}
                  k:{"name":"KUBERNETES_NAMESPACE"}:
                    .: {}
                    f:name: {}
                    f:valueFrom:
                      .: {}
                      f:fieldRef: {}
                f:image: {}
                f:imagePullPolicy: {}
                f:name: {}
                f:ports:
                  .: {}
                  k:{"containerPort":8080,"protocol":"TCP"}:
                    .: {}
                    f:containerPort: {}
                    f:name: {}
                    f:protocol: {}
                f:resources: {}
                f:terminationMessagePath: {}
                f:terminationMessagePolicy: {}
            f:dnsPolicy: {}
            f:restartPolicy: {}
            f:schedulerName: {}
            f:securityContext: {}
            f:serviceAccount: {}
            f:serviceAccountName: {}
            f:terminationGracePeriodSeconds: {}
    manager: argocd-controller
    operation: Update
    time: "2026-02-25T07:19:41Z"
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:deployment.kubernetes.io/revision: {}
      f:status:
        f:availableReplicas: {}
        f:conditions:
          .: {}
          k:{"type":"Available"}:
            .: {}
            f:lastTransitionTime: {}
            f:lastUpdateTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"Progressing"}:
            .: {}
            f:lastTransitionTime: {}
            f:lastUpdateTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
        f:observedGeneration: {}
        f:readyReplicas: {}
        f:replicas: {}
        f:updatedReplicas: {}
    manager: k3s
    operation: Update
    subresource: status
    time: "2026-02-25T07:19:47Z"
  name: kubernetes-quickstart
  namespace: nl-amis-development
  resourceVersion: "121387"
  uid: 3f7f0851-b1eb-4b4c-a07d-188f82f21b3c
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: kubernetes-quickstart
      app.kubernetes.io/version: 1.0.0-SNAPSHOT
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
        app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
        app.quarkus.io/quarkus-version: 3.25.2
        app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
      creationTimestamp: null
      labels:
        app.kubernetes.io/managed-by: quarkus
        app.kubernetes.io/name: kubernetes-quickstart
        app.kubernetes.io/version: 1.0.0-SNAPSHOT
    spec:
      containers:
      - env:
        - name: KUBERNETES_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: localhost:8443/quarkus/kubernetes-quickstart:1.0.0-SNAPSHOT
        imagePullPolicy: Always
        name: kubernetes-quickstart
        ports:
        - containerPort: 8080
          name: ports
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: kubernetes-quickstart
      serviceAccountName: kubernetes-quickstart
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 2
  conditions:
  - lastTransitionTime: "2026-02-24T19:01:47Z"
    lastUpdateTime: "2026-02-24T19:01:47Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2026-01-25T15:40:22Z"
    lastUpdateTime: "2026-02-25T07:19:47Z"
    message: ReplicaSet "kubernetes-quickstart-7497b84446" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 10
  readyReplicas: 2
  replicas: 2
  updatedReplicas: 2

I conclude this part 5 article.

In this article, I continued with, using the Argo CD Sync Options.

You can read about the Argo CD Automated Sync Policy, that was set by default, when the Argo CD manifest (yaml) files were generated as part of the Quarkus build.

You also can read about how I, changed the “desired state” (as specified in the Git repo):

  • Changing the number of replicated Pods (replicas) from 5 to 2 in the “desired state” (Git repo)

You also can read about how I, changed the “live state” (on the Kubernetes cluster):

  • Changing the number of replicated Pods (replicas) from 2 to 3 in the “live state” (Kubernetes cluster)
  • Changing the number of replicated Pods (replicas) from 2 to 7 in the “live state” (Kubernetes cluster)
  • Changing the “live state” (Kubernetes cluster), by deleting my kubernetes-quickstart service
  • Changing a particular Pod in the “live state” (Kubernetes cluster)

After each change, I followed the Argo CD automated sync process for my Argo CD kubernetes-quickstart application via the Argo CD UI and also by looking at the Argo CD events and the Argo CD Application Controller logs.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.