pkcon install -y git
pkcon install -y python3
pkcon install -y python3-pip
pkcon install -y python3-virtualenvbrew install git python gnu-tar
pip3 install virtualenvThis step might be virtualenv-3 for you.
virtualenv ~/python
source ~/python/bin/activate
echo "source ~/python/bin/activate" | tee -a ~/.bashrc
source ~/.bashrcpip install setuptools_rust wheel
pip install --upgrade pip
pip install ansibleinstall -d ~/.local/src/choice-reports
git clone [email protected]:CHOICE-Humanitarian/choice-reports.git ~/.local/src/choice-reportsinstall -d ~/.ansible/roles
git clone [email protected]:computate-org/computate_postgres.git ~/.ansible/roles/computate.computate_postgres
git clone [email protected]:computate-org/computate_zookeeper.git ~/.ansible/roles/computate.computate_zookeeper
git clone [email protected]:computate-org/computate_solr.git ~/.ansible/roles/computate.computate_solr
git clone [email protected]:computate-org/computate_project.git ~/.ansible/roles/computate.computate_projectansible-playbook ~/.ansible/roles/computate.computate_postgres/install.yml -K
ansible-playbook ~/.ansible/roles/computate.computate_zookeeper/install.yml -K
ansible-playbook ~/.ansible/roles/computate.computate_solr/install.yml -K
ansible-playbook ~/.ansible/roles/computate.computate_project/install.yml -e SITE_NAME=choice-reports -e ENABLE_CODE_GENERATION_SERVICE=trueYou can also inject your own secret variables with an Ansible Vault into the project install automation if you want to override any values.
Here is an example of creating a vault directory and creating a new vault, it will ask for a password. Be sure to not commit your vault to source control, it should be ignored by default in the .gitignore file that is created in the project.
install -d ~/.local/src/choice-reports-ansible/vault
ansible-vault create ~/.local/src/choice-reports-ansible/vault/$USER-localYou can edit the vault, it will ask for the password.
ansible-vault edit ~/.local/src/choice-reports-ansible/vault/$USER-localYou can then run the project install automation again with the secrets in the vault, it will ask for the password.
ansible-playbook ~/.ansible/roles/computate.computate_project/install.yml -e SITE_NAME=choice-reports -e ENABLE_CODE_GENERATION_SERVICE=true -e @~/.local/src/choice-reports-ansible/vault/$USER-local --vault-id @promptYou can download Red Hat Code Ready Studio here:
https://developers.redhat.com/products/codeready-studio/download
You will want to create a Red Hat account if you do not already have one.
After you download CodeReady Studio, create a directory for it and install it with this command:
install -d ~/.local/opt/codereadystudio
java -jar ~/Downloads/codereadystudio-*-installer-standalone.jarYou can use the default installation settings. I suggest to install CodeReady Studio in your in $HOME/.local/opt/codereadystudio
When you run CodeReady Studio, I suggest you create your workspace here: ~/.local/src
In CodeReady Studio, go to Help -> Install New Software...
Add these update sites and install these useful plugins:
- http://vrapper.sourceforge.net/update-site/stable
- Choose the "Vrapper" plugin if you want to be able to edit code with Vim commands
- Vrapper keys to unbind in Window -> Preferences -> General -> Keys:
- ctrl+d, ctrl+u, ctrl+r, shift+ctrl+v, alt+v
- Vrapper keys to set:
- and search for "Vrapper" and set the keys to alt+v
- http://www.genuitec.com/updates/devstyle/ci/
- Choose "DevStyle Features" for themes
- http://www.genuitec.com/updates/devstyle/ci/
- Choose "DevStyle Features" for themes
- In CodeReady Studio, go to File -> Import...
- Select Maven -> Existing Maven Projects
- Click [ Next > ]
- Browse to the directory: ~/.local/src/choice-reports
- Click [ Finish ]
Setup a CodeReady Studio Debug/Run configuration to generate the OpenAPI 3 spec and the SQL create and drop scripts in choice-reports
- In CodeReady Studio, go to File -> Debug Configurations...
- Right click on Java Application -> New Configuration
- Name: choice-reports-OpenAPIGenerator
- Project: choice-reports
- Main class: org.choicehumanitarian.reports.enus.vertx.MainVerticle
Setup the following variables to setup the Vert.x verticle.
- CONFIG_PATH: ~/.local/src/choice-reports/config/choice-reports.yml
- RUN_OPENAPI3_GENERATOR: true
- RUN_SQL_GENERATOR: true
Click [ Apply ] and [ Debug ] to debug the generation of the OpenAPI Spec src/main/resources/webroot and the SQL create and drop scripts in src/main/resources/sql.
- In CodeReady Studio, go to File -> Debug Configurations...
- Right click on Java Application -> New Configuration
- Name: choice-reports
- Project: choice-reports
- Main class: org.choicehumanitarian.reports.enus.vertx.MainVerticle
Setup the following VM arguments to disable caching for easier web development:
-DfileResolverCachingEnabled=false -Dvertx.disableFileCaching=true
Setup the following variables to setup the Vert.x verticle.
- CONFIG_PATH: ~/.local/src/choice-reports/config/choice-reports.yml
- VERTXWEB_ENVIRONMENT: dev
Click [ Apply ] and [ Debug ] to debug the application.
To deploy choice-reports to OpenShift with Ansible, you will want to follow the instructions to install Ansible on your system first above "Install Ansible dependencies on Linux".
A default place to install Ansible roles from Ansible Galaxy is in ~/.ansible/roles. Make sure this directory exists:
install -d ~/.ansible/rolesgit clone [email protected]:computate-org/computate_postgres_openshift.git ~/.ansible/roles/computate.computate_postgres_openshift
git clone [email protected]:computate-org/computate_zookeeper_openshift.git ~/.ansible/roles/computate.computate_zookeeper_openshift
git clone [email protected]:computate-org/computate_solr_openshift.git ~/.ansible/roles/computate.computate_solr_openshift
git clone [email protected]:computate-org/computate_project_openshift.git ~/.ansible/roles/computate.computate_project_openshiftYou can create and edit an encrypted ansible vault with a password for the host secrets for your shared OpenShift inventory to deploy choice-reports. It will have you create a password when you save the file for the first time, like using vim to exit.
install -d ~/.local/src/choice-reports-ansible
install -d ~/.local/src/choice-reports-ansible/vault/$USER-staging/vault
ansible-vault create ~/.local/src/choice-reports-ansible/vault/$USER-staging/vault
ansible-vault edit ~/.local/src/choice-reports-ansible/vault/$USER-staging/vaultHere is an example of a vault that I have used to deploy the choice-reports application. You will want to update these values to reflect your OpenShift environment, like the REDHAT_OPENSHIFT_TOKEN which you will need to obtain after logging into OpenShift. Or the REDHAT_OPENSHIFT_STORAGE_CLASS_NAME which might be different than gp2 for you. If so, try creating a persistent volume in the UI to figure out a good storage class for your environment:
SITE_NAME: choice-reports
REDHAT_OPENSHIFT_HOST: https://api.rh-us-east-1.openshift.com
REDHAT_OPENSHIFT_TOKEN: OcrtrXzKNKVj0riR2FvfqORgGfnURx98G8zRPd2MUvs
REDHAT_OPENSHIFT_NAMESPACE: rh-impact
REDHAT_OPENSHIFT_STORAGE_CLASS_NAME: gp2
POSTGRES_DB_NAME: sampledb
POSTGRES_DB_USER: computate
POSTGRES_DB_PASSWORD: qVTaaa23aIkLmw
POSTGRES_VOLUME_SIZE: 1Gi
POSTGRES_STORAGE_CLASS_NAME: "{{ REDHAT_OPENSHIFT_STORAGE_CLASS_NAME }}"
ZOOKEEPER_VOLUME_SIZE: 1Gi
ZOOKEEPER_STORAGE_CLASS_NAME: "{{ REDHAT_OPENSHIFT_STORAGE_CLASS_NAME }}"
SOLR_VOLUME_SIZE: 2Gi
SOLR_STORAGE_CLASS_NAME: "{{ REDHAT_OPENSHIFT_STORAGE_CLASS_NAME }}"
AUTH_REALM: TEAM19
AUTH_RESOURCE: team19
AUTH_SECRET: 0518f65a-f86d-42e8-ad65-00f46920443d
AUTH_HOST_NAME: sso.computate.org
AUTH_PORT: 443
AUTH_SSL: true
AUTH_TOKEN_URI: "/auth/realms/RH-IMPACT/protocol/openid-connect/token"ansible-playbook --vault-id @prompt -e @~/.local/src/choice-reports-ansible/vault/$USER-staging/vault ~/.ansible/roles/computate.computate_postgres_openshift/install.yml -e SITE_NAME=choice-reports
ansible-playbook --vault-id @prompt -e @~/.local/src/choice-reports-ansible/vault/$USER-staging/vault ~/.ansible/roles/computate.computate_zookeeper_openshift/install.yml -e SITE_NAME=choice-reports
ansible-playbook --vault-id @prompt -e @~/.local/src/choice-reports-ansible/vault/$USER-staging/vault ~/.ansible/roles/computate.computate_solr_openshift/install.yml -e SITE_NAME=choice-reports
ansible-playbook --vault-id @prompt -e @~/.local/src/choice-reports-ansible/vault/$USER-staging/vault ~/.ansible/roles/computate.computate_project_openshift/install.yml -e SITE_NAME=choice-reportspkcon install -y buildah
pkcon install -y podmancd ~/.local/src/choice-reports
podman build -t computate/choice-reports:latest .podman login quay.io
podman push computate/choice-reports:latest quay.io/computate/choice-reports:latest