Chapter 2. Creating an application by using the GitOps CLI
With Argo CD, you can create your applications on an OpenShift Container Platform cluster by using the GitOps argocd CLI.
2.1. Creating an application in the default mode by using the GitOps CLI Copy linkLink copied to clipboard!
You can create applications in the default mode by using the GitOps argocd CLI.
Prerequisites
- You have installed the Red Hat OpenShift GitOps Operator on your OpenShift Container Platform cluster.
-
You have installed the OpenShift CLI (
oc). -
You have installed the Red Hat OpenShift GitOps
argocdCLI. - You have logged in to Argo CD instance.
Procedure
Get the
adminaccount password for the Argo CD server:$ ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)Get the Argo CD server URL:
$ SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')Log in to the Argo CD server by using the
adminaccount password and enclosing it in single quotes:ImportantEnclosing the password in single quotes ensures that special characters, such as
$, are not misinterpreted by the shell. Always use single quotes to enclose the literal value of the password.$ argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}Example:
$ argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testingVerify that you are able to run
argocdcommands in the default mode by listing all applications:$ argocd app listIf the configuration is correct, then existing applications will be listed with the following header:
Sample output:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCreate an application in the default mode:
$ argocd app create app-spring-petclinic \ --repo https://github.com/redhat-developer/openshift-gitops-getting-started.git \ --path app \ --revision main \ --dest-server https://kubernetes.default.svc \ --dest-namespace spring-petclinic \ --directory-recurse \ --sync-policy automated \ --self-heal \ --sync-option Prune=true \ --sync-option CreateNamespace=trueLabel the
spring-petclinicdestination namespace to be managed by theopenshif-gitopsArgo CD instance:$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"List the available applications to confirm that the application is created successfully and repeat the command until the application has the
HealthyandSyncedstatuses:$ argocd app list
2.2. Creating an application in core mode by using the GitOps CLI Copy linkLink copied to clipboard!
You can create applications in core mode by using the GitOps argocd CLI.
Prerequisites
- You have installed the Red Hat OpenShift GitOps Operator on your OpenShift Container Platform cluster.
-
You have installed the OpenShift CLI (
oc). -
You have installed the Red Hat OpenShift GitOps
argocdCLI.
Procedure
Log in to the OpenShift Container Platform cluster by using the
ocCLI tool:$ oc login -u <username> -p <password> <server_url>Example:
$ oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443Check whether the context is set correctly in the
kubeconfigfile:$ oc config current-contextSet the default namespace of the current context to
openshift-gitops:$ oc config set-context --current --namespace openshift-gitopsSet the following environment variable to override the Argo CD component names:
$ export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-serverVerify that you are able to run
argocdcommands incoremode by listing all applications:$ argocd app list --coreIf the configuration is correct, then existing applications will be listed with the following header:
Sample output:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCreate an application in
coremode:$ argocd app create app-spring-petclinic --core \ --repo https://github.com/redhat-developer/openshift-gitops-getting-started.git \ --path app \ --revision main \ --dest-server https://kubernetes.default.svc \ --dest-namespace spring-petclinic \ --directory-recurse \ --sync-policy automated \ --self-heal \ --sync-option Prune=true \ --sync-option CreateNamespace=trueLabel the
spring-petclinicdestination namespace to be managed by theopenshif-gitopsArgo CD instance:$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"List the available applications to confirm that the application is created successfully and repeat the command until the application has the
HealthyandSyncedstatuses:$ argocd app list --core