Skip to content

Latest commit

 

History

History
229 lines (161 loc) · 5.34 KB

DEPLOY.md

File metadata and controls

229 lines (161 loc) · 5.34 KB

Developer portal

Deploying applications with z

z is the one-stop shop for the Zilliqa provisioning and deployment operations. To deploy applications with z ensure the z binary is installed in your operative system PATH environment variable. For more details about z please refer to the documentation.

Deploying applications to localdev

To deploy the localdev/development environment go to the project folder in the zilliqa-developer repository:

cd ./products/developer-portal

The ./products/developer-portal/z.yaml contains all the relevant configurations for the development environment. Now set the following environment variables to reference the project's z.yaml file:

  • Z_ENV to the path in which your z.yaml resides.
  • ZQ_USER to your username (the bit before @ in your email address)

for example:

export Z_ENV=z.yaml
export ZQ_USER=<user_id>@zilliqa.com

Create the local kind cluster (if not created previously):

z local create

Execute the manifests (in this case for ensuring the installation of the ingress-nginx controller, required for localdev/development environments):

z k-apply

Build and push the image:

make image/build-and-push

And deploy the application to your local cluster with:

z app sync

Verify your application is running correct from the http://localhost URL and with kubectl commands (if required).

Deploying applications to staging

To deploy the staging environment we need to clone the devops repository and execute z from there:

git clone https://github.com/Zilliqa/devops.git
cd devops
source setenv

Set the following environment variables

  • Z_ENV to the path in which your z.yaml resides.
  • ZQ_USER to your username (the bit before @ in your email address)
  • GITHUB_PAT (if you are deploying staging or production apps) to a classic PAT with all the repo permissions ticked.

for example:

export Z_ENV=`pwd`/infra/live/gcp/non-production/prj-d-staging/z_ase1.yaml
export ZQ_USER=<user_id>@zilliqa.com
export GITHUB_PAT=<GITHUB_PAT>

Login to Google Cloud

z login

Add the application to the staging z.yaml file. Skip this step if it is an existing application

  1. Create a branch:

    git checkout -b users/<username>/add_developer_portal_to_staging_cluster
  2. In the file infra/live/gcp/non-production/prj-d-staging/z_ase1.yaml add the following:

    • in apps stanza add:

      clusters:
        staging:
          apps:
            developer-portal:
              repo: https://github.com/Zilliqa/zilliqa-developer
              path: products/developer-portal/cd/overlays/staging
              track: staging
              type: kustomize
    • in subdomains stanza add:

      infrastructure:
      dns:
        vars:
        subdomains:
          developer-portal: {}
  3. Push the changes

    git add .
    git commit -m "Add Developer Portal to staging cluster"
    git push origin users/<username>/add_developer_portal_to_staging_cluster
  4. Open a Pull Request to the main branch

  5. Apply the changes

    z plan
    z apply

Deploy the application

z app sync --cache-dir=.cache developer-portal

Verify your application is running correct from the staging URL and with kubectl commands (if required).

Deploying applications to production

To deploy the production environment we need to clone the devops repository and execute z from there:

git clone https://github.com/Zilliqa/devops.git
cd devops
source setenv

Set the following environment variables

  • Z_ENV to the path in which your z.yaml resides.
  • ZQ_USER to your username (the bit before @ in your email address)
  • GITHUB_PAT (if you are deploying staging or production apps) to a classic PAT with all the repo permissions ticked.

for example:

export Z_ENV=`pwd`/infra/live/gcp/production/prj-p-prod-apps/z_ase1.yaml
export ZQ_USER=<user_id>@zilliqa.com
export GITHUB_PAT=<GITHUB_PAT>

Login to Google Cloud

z login

Add the application to the production z.yaml file. Skip this step if it is an existing application

  1. Create a branch:

    git checkout -b users/<username>/add_developer_portal_to_production_cluster
  2. In the file infra/live/gcp/production/prj-p-prod-apps/z_ase1.yaml add the following:

    • in apps stanza add:

      clusters:
        production:
          apps:
            developer-portal:
              repo: https://github.com/Zilliqa/zilliqa-developer
              path: products/developer-portal/cd/overlays/production
              track: production
              type: kustomize
    • in subdomains stanza add:

      infrastructure:
      dns:
        vars:
        subdomains:
          dev: {}
  3. Push the changes

    git add .
    git commit -m "Add Developer Portal to production cluster"
    git push origin users/<username>/add_developer_portal_to_production_cluster
  4. Open a Pull Request to the main branch

  5. Apply the changes

    z plan
    z apply

Deploy the application

z app sync --cache-dir=.cache developer-portal

Verify your application is running correct from the production URL and with kubectl commands (if required).