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.
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).
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:
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)]
Above you can see that the Argo CD kubernetes-quickstart application was created. Next, I clicked on this application.
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.
The following Application conditions ComparisonError was visible:
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.
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:
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.
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.
As you can see above, again there was an APP CONDITIONS error.
So, I clicked on the error.
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.
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.
[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.
As you can see above, there was an APP CONDITIONS error.
So, I clicked on the error.
The following Application conditions InvalidSpecError was visible:
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.
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.
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 |
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.
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/]
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:
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.
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.
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.
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.
The following Application conditions InvalidSpecError was visible:
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.
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.
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.
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:
- Added files to the Quarkus project (the “kubernetes-quickstart” application) in my GitHub Private repository.
- Creating the Argo CD kubernetes-quickstart application in Kubernetes.
In my next article (part 5), I will be looking into the Argo CD Sync Options.
