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

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

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 generated the Argo CD Application and Project manifest (yaml) files as part of the Quarkus build. I also described how I created an Argo CD Project and Argo CD Private Repository in Kubernetes, for the “kubernetes-quickstart” application in my GitHub Private repository.

In this article (part 4), I will continue with, creating an Argo CD Application in Kubernetes.

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 3)]

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

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 4) lameriks 2026 02 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 4) lameriks 2026 02 3

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

Creating the Argo CD kubernetes-quickstart application

In my previous article, I described how I generated the Argo CD Application and Project manifest (yaml) files as part of the Quarkus build. I also described how I created an Argo CD Project and Argo CD Private Repository in Kubernetes, for the “kubernetes-quickstart” application in my GitHub Private repository.
[Quarkus – trying out the “Argo CD Extension for Quarkus” (part 3)]

So now, I will continue with, creating the Argo CD kubernetes-quickstart application in Kubernetes.

In order to create the Argo CD application, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/application-kubernetes-quickstart.yaml

With the following output:

application.argoproj.io/kubernetes-quickstart created

Next, in order to log in to Argo CD, I used the following command on the Linux Command Prompt:

argocd login --insecure localhost:8086

With the following output:

Username: admin
Password:
'admin:login' logged in successfully
Context 'localhost:8086' updated

Then, in order to list Argo CD applications, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME                          CLUSTER                         NAMESPACE  PROJECT                STATUS   HEALTH   SYNCPOLICY  CONDITIONS       REPO                                                       PATH                                    TARGET
argocd/guestbook              https://kubernetes.default.svc  default    default                Synced   Healthy  Manual      <none>           https://github.com/argoproj/argocd-example-apps.git        guestbook                               HEAD
argocd/kubernetes-quickstart  https://kubernetes.default.svc             kubernetes-quickstart  Unknown  Healthy  Auto-Prune  ComparisonError  https://github.com/marclameriks/kubernetes-quickstart.git  .helm/kubernetes/kubernetes-quickstart  HEAD

Next, I also wanted to check the Argo CD kubernetes-quickstart application via the Argo CD UI.

So, 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 4) lameriks 2026 02 4

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

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

As you can see above, there was an APP CONDITIONS error.

First, 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.

As you may remember from my previous article, in the generated Argo CD Application manifest (yaml), a syncPolicy was specified with an automated policy.

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.
[https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automated-sync-policy]

You can read more about the Argo CD Sync Options in my next article.

I continued with, clicking on the APP CONDITIONS error.

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

The following Application conditions ComparisonError was visible:

Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = .helm/kubernetes/kubernetes-quickstart: app path does not exist

So, apparently the path to the Helm charts was not correct.

Next, I closed the Application conditions page and via the “DELETE” button, I deleted the application.

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

In order to confirm the deletion of the application, I typed: kubernetes-quickstart

Then, in order to list Argo CD applications and check the deletion of my application, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME              CLUSTER                         NAMESPACE  PROJECT  STATUS  HEALTH   SYNCPOLICY  CONDITIONS  REPO                                                 PATH       TARGET
argocd/guestbook  https://kubernetes.default.svc  default    default  Synced  Healthy  Manual      <none>      https://github.com/argoproj/argocd-example-apps.git  guestbook  HEAD

And indeed, the Argo CD kubernetes-quickstart application was no longer visible in the list.

Changing the Argo CD Application and Argo CD Project manifest (yaml) files

As you may remember from my previous article, 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 3)]

Below, you can see the content of file application-kubernetes-quickstart.yaml:

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
  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

Below, you can see the content of file appproject-kubernetes-quickstart.yaml:

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

Argo CD applications, projects and settings can be defined declaratively using Kubernetes manifests. These can be updated using kubectl apply, without needing to touch the argocd command-line tool.
[https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#declarative-setup]

File application-kubernetes-quickstart.yaml is the generated Kubernetes manifest for an Argo CD Application and file appproject-kubernetes-quickstart.yaml is the generated Kubernetes manifest for an Argo CD AppProject.

For Application and AppProject resources, the name of the resource equals the name of the application or project within Argo CD. This also means that application and project names are unique within a given Argo CD installation – you cannot have the same application name for two different applications.
[https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#multiple-configuration-objects]

All resources, including Application and AppProject specs, have to be installed in the Argo CD namespace (by default argocd).
[https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#quick-reference]

Making a short side step

But first, let’s digress on one of the requirements for using the “Argo CD Extension for Quarkus”, as it was mentioned in the “Getting Started” part of the Argo CD documentation, was:

  • Project added under a version control system and pushed on a repository (e.g. GitHub, etc.)

[https://docs.quarkiverse.io/quarkus-argocd/dev/index.html#_requirements]

So when you try to generate the Argo CD manifest (yaml) files as part of the Quarkus build without the project added under a version control system, for example Git, you get the following Source Code Management (SCM) error:

[WARNING] [io.quarkiverse.argocd.deployment.ArgoCDProcessor] No SCM information found. Skipping argocd deployment generation.

So, this tells us that the “Argo CD Extension for Quarkus” isn’t able to figure out where to look for a repository.

The SCM Provider generator uses the API of an SCMaaS provider (eg GitHub) to automatically discover repositories within an organization.
[https://argo-cd.readthedocs.io/en/latest/operator-manual/applicationset/Generators-SCM-Provider/]

As I found out, you can at least generate the Argo CD manifest (yaml) files, for example in combination with Git, when the following file is present:

.git/config

With for example the following content:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://marclameriks@github.com/marclameriks/nonexistingrepository.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

I tried this out, by creating a new Quarkus “myapplication1” application, in combination with the config file mentioned above.

In order to generate the Argo CD resources, I used the usual command on the Linux Command Prompt:

mvn clean package -DskipTests

Below, you can see the content of file application-myapplication1.yaml:

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

By aware however that the config file is not the only thing that is needed for Git to work correct.

Below you see, for example, the content of the .git directory for my “kubernetes-quickstart” application.

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

Below, you can see the content of file .git/config for my “kubernetes-quickstart” application:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://marclameriks@github.com/marclameriks/kubernetes-quickstart.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

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

In order to list all variables set in the repository config file, along with their values, I used the following command:
[https://git-scm.com/docs/git-config#Documentation/git-config.txt-list]

git config list --local

With the following output:

core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://marclameriks@github.com/marclameriks/kubernetes-quickstart.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.main.remote=origin
branch.main.merge=refs/heads/main

In order to list the value of variable remote.origin.url, set in the repository config file, I used the following command:

git config --local remote.origin.url

With the following output:

https://marclameriks@github.com/marclameriks/kubernetes-quickstart.git

Changing the content of file application-kubernetes-quickstart.yaml

So next, after this short side-step, in order to change the path to Helm charts, I changed the content of file application-kubernetes-quickstart.yaml to:
[in bold, I highlighted the changes]

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
  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

Creating the Argo CD kubernetes-quickstart application again

In order to create the Argo CD application, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/application-kubernetes-quickstart.yaml

With the following output:

application.argoproj.io/kubernetes-quickstart created

Next, in order to list Argo CD applications, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
argocd/guestbook https://kubernetes.default.svc default default Synced Healthy Manual <none> https://github.com/argoproj/argocd-example-apps.git guestbook HEAD
argocd/kubernetes-quickstart https://kubernetes.default.svc kubernetes-quickstart OutOfSync Missing Auto-Prune SyncError https://github.com/marclameriks/kubernetes-quickstart.git helm/kubernetes/kubernetes-quickstart HEAD

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

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

As you can see above, again there was an APP CONDITIONS error.

So, I clicked on the error.

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

The following Application conditions SyncError was visible:

Failed last sync attempt to […]: one or more synchronization tasks are not valid.

Next, I closed the Application conditions page. As you also could see , there was a LAST SYNC error.

So, I clicked on that error.

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

Above you can see the sync results (for example for the Service and Deployment), all with the following error:

namespace nl-amis-development is not permitted in project ‘kubernetes-quickstart’

So this means that the application within the project is not allowed to deploy into the nl-amis-development namespace of the Kubernetes cluster.

Next, I closed the sync results page and via the “DELETE” button, I deleted the application.

The Argo CD Project

Then, in order to list Argo CD projects, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj/]

argocd proj list

With the following output:

NAME DESCRIPTION DESTINATIONS SOURCES CLUSTER-RESOURCE-WHITELIST NAMESPACE-RESOURCE-BLACKLIST SIGNATURE-KEYS ORPHANED-RESOURCES DESTINATION-SERVICE-ACCOUNTS
default *,* * */* <none> <none> disabled <none>
kubernetes-quickstart https://kubernetes.default.svc, https://github.com/marclameriks/kubernetes-quickstart.git <none> <none> <none> disabled <none>

This shows the Argo CD project, I created before, as described in my previous article.
[Quarkus – trying out the “Argo CD Extension for Quarkus” (part 3)]

Argo CD Projects via Declarative Setup

I had a look at the Argo CD Operator Manual, Declarative Setup, Projects.

The AppProject CRD (Custom Resource Definition) is the Kubernetes resource object representing a logical grouping of applications. It is defined by the following key pieces of information:

  • sourceRepos reference to the repositories that applications within the project can pull manifests from.
  • destinations reference to clusters and namespaces that applications within the project can deploy into.
  • roles list of entities with definitions of their access to resources within the project.

Quarkus – trying out the “Argo CD Extension for Quarkus” (part 4) lameriks 2026 02 12
[https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#projects]

Next, in order to add the namespace nl-amis-development, I changed the content of file appproject-kubernetes-quickstart.yaml to:
[in bold, I highlighted the changes]

---
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

This allows the application within the project to deploy into the nl-amis-development namespace of the Kubernetes cluster.

So, in order to create the Argo CD project again, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/appproject-kubernetes-quickstart.yaml

With the following output:

appproject.argoproj.io/kubernetes-quickstart created

Then, in order to list Argo CD projects, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj/]

argocd proj list

With the following output:

NAME                   DESCRIPTION  DESTINATIONS                                        SOURCES                                                    CLUSTER-RESOURCE-WHITELIST  NAMESPACE-RESOURCE-BLACKLIST  SIGNATURE-KEYS  ORPHANED-RESOURCES  DESTINATION-SERVICE-ACCOUNTS
default                             *,*                                                 *                                                          */*                         <none>                        <none>          disabled            <none>
kubernetes-quickstart               https://kubernetes.default.svc,nl-amis-development  https://github.com/marclameriks/kubernetes-quickstart.git  <none>                      <none>                        <none>          disabled            <none>

As you can see above, the destinations part is now changed and contains also a namespace:

https://kubernetes.default.svc,nl-amis-development

Creating the Argo CD kubernetes-quickstart application yet again

With the Argo CD project manifest (yaml) file changed and deployed, now the Argo CD application can be created again.

In order to create the Argo CD application, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/application-kubernetes-quickstart.yaml

With the following output:

application.argoproj.io/kubernetes-quickstart created

Next, in order to list Argo CD applications, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
argocd/guestbook https://kubernetes.default.svc default default Synced Healthy Manual <none> https://github.com/argoproj/argocd-example-apps.git guestbook HEAD
argocd/kubernetes-quickstart https://kubernetes.default.svc kubernetes-quickstart Unknown Unknown Auto-Prune InvalidSpecError https://github.com/marclameriks/kubernetes-quickstart.git helm/kubernetes/kubernetes-quickstart HEAD

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

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

As you can see above, there was an APP CONDITIONS error.

So, I clicked on the error.

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

The following Application conditions InvalidSpecError was visible:

application destination server ‘https://kubernetes.default.svc’ and namespace ” do not match any of the allowed destinations in project ‘kubernetes-quickstart’

Remember, at the moment, this is the content of file application-kubernetes-quickstart.yaml (only showing a part):

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubernetes-quickstart
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
  project: kubernetes-quickstart
  source:
    helm:
      valueFiles:
      - values.yaml
    path: helm/kubernetes/kubernetes-quickstart
    repoURL: https://github.com/marclameriks/kubernetes-quickstart.git
    targetRevision: HEAD

As you may remember, the Kubernetes manifest files in my GitHub Private repository, are using the nl-amis-development namespace.
Below you see, for example, the content of file service.yaml:

---
apiVersion: v1
kind: Service
metadata:
  annotations:
    app.quarkus.io/quarkus-version: 3.25.2
    app.quarkus.io/commit-id: 96c2f7b0ebe9bf9166453f6fbd3d7b5d463d774c
    app.quarkus.io/vcs-uri: https://github.com/marclameriks/kubernetes-quickstart.git
    app.quarkus.io/build-timestamp: 2026-02-21 - 13:30:26 +0000
  labels:
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
    app.kubernetes.io/managed-by: quarkus
  name: kubernetes-quickstart
  namespace: nl-amis-development
spec:
  ports:
    - name: ports
      nodePort: 30010
      port: 8180
      protocol: TCP
      targetPort: {{ .Values.app.ports.ports }}
  selector:
    app.kubernetes.io/name: kubernetes-quickstart
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
  type: NodePort

Next, I closed the Application conditions page.

Then, in order to add the namespace nl-amis-development, I changed the content of file application-kubernetes-quickstart.yaml to:
[in bold, I highlighted the changes]

---
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

Creating the Argo CD kubernetes-quickstart application again

In order to create the Argo CD application, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/application-kubernetes-quickstart.yaml

With the following output:

application.argoproj.io/kubernetes-quickstart created

Next, in order to list Argo CD applications, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
argocd/guestbook https://kubernetes.default.svc default default Synced Healthy Manual <none> https://github.com/argoproj/argocd-example-apps.git guestbook HEAD
argocd/kubernetes-quickstart https://kubernetes.default.svc nl-amis-development kubernetes-quickstart Synced Healthy Auto-Prune <none> https://github.com/marclameriks/kubernetes-quickstart.git helm/kubernetes/kubernetes-quickstart HEAD

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

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

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

  • Created: 01/25/2026 16:40:17 (a few seconds ago)
  • Last Sync: 01/25/2026 16:40:22 (a few seconds 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 4) lameriks 2026 02 16

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

  • APP HEALTH: Healty
  • SYNC STATUS: Synced to HEAD (121fac9)
  • LAST SYNC: Sync OK to 121fac9, Succeeded a minute ago (Sun Jan 25 2026 16:40:22 GMT +0100)

So, now everything worked successfully. You can see that there are 5 replicated Pods (replicas) running.

Making changes to the generated Kubernetes manifest for the Argo CD Application and AppProject

Up till now, I made some manual changes to the generated Kubernetes manifest files. I wanted to avoid this as much as possible.

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=5
quarkus.kubernetes.service-type=node-port
quarkus.helm.output-directory=../.helm
quarkus.argocd.destination-namespace=nl-amis-development

Remark about quarkus.helm.output-directory:

Remark about quarkus.helm.output-directory:

Configuration property Type Default
quarkus.helm.output-directory
The output folder in which to place the Helm generated folder. The folder is relative to the target output directory in Quarkus that is also configurable using the property quarkus.package.output-directory. It also supports absolute paths. By default, it will be generated in the folder named “helm“.
Environment variable: QUARKUS_HELM_OUTPUT_DIRECTORY
string helm

[https://docs.quarkiverse.io/quarkus-helm/dev/index.html#quarkus-helm_quarkus-helm-output-directory]

Remark about quarkus.argocd.destination-namespace:

Configuration property Type Default
quarkus.argocd.destination-namespace
The target/destination namespace where the resources of the runtime should be installed from the Helm chart, kustomize, etc
Environment variable: QUARKUS_ARGOCD_DESTINATION_NAMESPACE
string

[https://docs.quarkiverse.io/quarkus-argocd/dev/index.html#quarkus-argocd_quarkus-argocd-destination-namespace]

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

So 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.

I checked the content of these files, with regard to the destination namespace and source path.

The content of file appproject-kubernetes-quickstart.yaml was now:
[in bold, I highlighted the changes]

---
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

The content of file application-kubernetes-quickstart.yaml was now:
[in bold, I highlighted the changes]

---
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

Next, I checked if the following directory was now present on my Windows laptop:

C:\My\AMIS\MySharedFolder\github\repositories\private\kubernetes-quickstart\.helm\kubernetes\kubernetes-quickstart

And indeed it was.

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

Checking in my code changes in Git

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

I deleted the helm subdirectory and used TorsoiseGit to add the new .helm subdirectory (including the files in it) to the local working tree.

TortoiseGit is a Windows Shell Interface to Git and based on TortoiseSVN. It’s open source and can fully be build with freely available software.
[https://tortoisegit.org/about/]

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

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

The kubernetes-quickstart application, needed for a Continuous Delivery (CD) workflow using Quarkus Helm and ArgoCD

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 4) lameriks 2026 02 19

As you can see above, the files were added.

On my Windows laptop, I checked the Argo CD kubernetes-quickstart application via the Argo CD UI.

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

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: 01/25/2026 16:40:22 (23 days 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 4) lameriks 2026 02 21

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

  • APP HEALTH: Healty
  • SYNC STATUS: HEAD
  • LAST SYNC: Sync OK to 121fac9, Succeeded 23 days ago (Sun Jan 25 2026 16:40:22 GMT +0100)

As you can see above, there was an APP CONDITIONS error.

So, I clicked on the error.

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

The following Application conditions InvalidSpecError was visible:

Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = Manifest generation error (cached): helm/kubernetes/kubernetes-quickstart: app path does not exist

So, due to my recent change, there was a mismatch between the path present in Git (.helm/kubernetes/kubernetes-quickstart) and the path specified in the current Argo CD Application (helm/kubernetes/kubernetes-quickstart).

Next, I closed the Application conditions page.

Creating the Argo CD kubernetes-quickstart application yet again

In order to create the Argo CD application, I used the following commands on the Linux Command Prompt:

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

kubectl apply -f .argocd/application-kubernetes-quickstart.yaml

With the following output:

application.argoproj.io/kubernetes-quickstart created

Next, in order to list Argo CD applications, I used the following command on the Linux Command Prompt:
[https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_list/]

argocd app list

With the following output:

NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
argocd/guestbook https://kubernetes.default.svc default default Synced Healthy Manual <none> https://github.com/argoproj/argocd-example-apps.git guestbook HEAD
argocd/kubernetes-quickstart https://kubernetes.default.svc nl-amis-development kubernetes-quickstart Synced Healthy Auto-Prune <none> https://github.com/marclameriks/kubernetes-quickstart.git .helm/kubernetes/kubernetes-quickstart HEAD

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

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

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 4) lameriks 2026 02 24

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)

So, everything worked successfully. You can see that there are 5 replicated Pods (replicas) running.

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

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

Then, I closed the Sync page.

I conclude this part 4 article.

In this article, I continued with, creating an Argo CD Application in Kubernetes.

You can read about how I:

In my next article (part 5), I will be looking into the Argo CD Sync Options.

Leave a Reply

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