Cloud Native Experience: AWS Ready - Getting Started

CNE AWS Ready: Bootstrapping Your Initial Environment

After completing the prerequisites, run the Cloud Native Experience (CNE) bootstrap process. This step provisions the AWS infrastructure, configures GitOps synchronization, and deploys the Liferay platform.

Important

Initial Cloud Native Experience (CNE) provisioning can take 45–70 minutes to complete.

The bootstrap process provisions several AWS-managed services through Crossplane. The longest steps are typically:

  • OpenSearch provisioning (up to ~30 minutes)
  • Amazon RDS database provisioning (up to ~20 minutes)

These services run in parallel but must both complete before the LiferayInfrastructure resource reports Healthy, which allows the Liferay application to start with valid connection details.

Do not interrupt the bootstrap process during this time.

Tip

For your first Cloud Native deployment, run the bootstrap process with the default configuration before modifying any Terraform or Helm values.

This initial deployment helps you become familiar with the Cloud Native tooling, including Terraform, Argo CD, and the GitOps workflow.

After reviewing the environment and understanding the deployment process, tear down the environment and run the bootstrap again with the configuration required for your production deployment.

Authenticate Your Local Environment

Before running the script, authenticate your terminal with your AWS account.

  1. Configure an AWS CLI profile if you have not already done so:

    aws configure sso
    
  2. Authenticate with your AWS account:

    export AWS_PROFILE=[your-profile-name]
    aws sso login
    

Prepare the Bootstrap Directory

Download and unzip the Cloud Native Experience bootstrap archive provided by Liferay. Open a terminal and navigate to the root directory of the extracted archive.

Configure the Bootstrap

The config.json file defines how the bootstrap process provisions your environment.

Open config.json and verify the required variables:

{
	"provider": "aws",
	"variables": {
		"deployment_name": "clarity",
		"liferay_git_repo_url": "https://github.com/clarity/acme-gitops",
		"liferay_helm_chart_version": "0.1.90",
		"region": "us-west-2"
	}
}
VariableDescription
deployment_nameIdentifier used to name infrastructure resources.
liferay_git_repo_urlURL of the GitOps repository created during the prerequisites.
liferay_helm_chart_versionVersion of the Liferay Helm chart to deploy.
regionAWS region where infrastructure will be created.
Note

If liferay_helm_chart_version is not explicitly set, the bootstrap process provisions the environment using the most recently available Liferay Helm chart version.

Run the Bootstrap Script

From the root directory of the extracted archive, execute the bootstrap script with your configuration file:

./cloud/scripts/setup_aws.sh ./config.json

During execution, the script prompts you to confirm infrastructure creation for:

  • EKS – Kubernetes cluster
  • GitOps Platform – Argo CD and supporting services
  • GitOps Resources – Liferay and its dependencies
Note

Executing the bootstrap script downloads the bootstrap resources to a temporary directory on your system (TEMPDIR, e.g., /tmp on MacOS/Linux). Advanced users can inspect or customize the Terraform resources and provisioning scripts in the extracted folder. After making changes, re-run the bootstrap script with your config.json to apply updates.

Tip

If the process fails due to network or authentication issues, run the same command again to resume provisioning.

After the script completes, you can access Argo CD to verify and manage your deployment.

Access Argo CD

When the bootstrap process completes, the script prints the Argo CD administrator password and starts a port-forward.

To access Argo CD, open http://localhost:8080 in your browser.

Log in with:

Username: admin
Password: [see terminal output]

If you close the terminal and want to access Argo CD again, run:

kubectl port-forward service/argocd-server 8080:443 \
   --namespace argocd-system

To retrieve the initial administrator password again, run:

kubectl -n argocd-system get secret argocd-initial-admin-secret \
   -o jsonpath="{.data.password}" | base64 --decode

Once the applications reach Healthy and Synced status in Argo CD, the Cloud Native Experience environment is fully provisioned. The AWS infrastructure, Kubernetes cluster, and Liferay platform are now running and managed through GitOps.

Continue with Configuring the Cloud Native Experience.