Resources to make it easier for public organizations to offer the widely used BC Services Card a secure and verified government issued identity card as a login option for online services.
Our vision: Make it easier for public organizations to offer the widely used BC Services Card, a secure and verified government issued identity as a login option for online services.
.
├── CODE_OF_CONDUCT.md
├── COMPLIANCE.yaml
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── jenkins
├── local
├── openshift
├── selfservice-api
├── selfservice-db
├── selfservice-ui
└── sonar-runner
-
selfservice-api
: Selfservice-api is an python application and runs a backend functionality and will be an dockerized application. API directory consists Dockerfile, flask api, tests.- Python, Flask
- Postgres - SQLAlchemy, psycop2-binary & alembic
-
selfservice-ui
: Selfservice-UI is a frontend Vue application exposed over https:443.- Vue, Vuex, Vuetify, webpack, vue-i18n
- Styleguidist, keycloak-js, babel
- Jest, Istanbul
-
openshift
: openshift folder consists holds all the openshift templates for deploying buildConfigs, deploymentConfigs, Pipeline buildConfigs, configMaps, secretMaps and network policies../openshift ├── network_policies │ ├── nsp_dev.yaml │ ├── nsp_test.yaml │ └── nsp_tools.yaml ├── selfservice-api │ ├── api-build.yaml │ ├── api-deploy-configmap.yaml │ ├── api-deploy-test.yaml │ ├── api-deploy.yaml │ └── api-pipeline.yaml ├── selfservice-db │ ├── db-build.yaml │ ├── db-deploy-configmap.yaml │ ├── db-deploy-test-Ephemeral.yaml │ ├── db-deploy.yaml │ └── db-pipeline.yaml ├── selfservice-ui │ ├── bcsc-pipeline.yaml │ ├── jenkins │ ├── secretmap_sample.yaml │ ├── web-build-configmap.yaml │ ├── web-build.yaml │ ├── web-build_test.yaml │ └── web-deploy.yaml └── sonarqube ├── sonarqube-postgresql-template.yaml └── sonarqube.md
-
jenkins
: Jenkins folder holds pipeline code (jenkinsfile) for webhook triggered deployment based on merge and to their respective branch../jenkins ├── jenkinsfile.common.groovy ├── jenkinsfile.db.groovy ├── jenkinsfile.dev.groovy ├── jenkinsfile.prod.groovy └── jenkinsfile.test.groovy
-
local
: Folder holds docker-compose files and bash scripts to deploy complete BC Service card application solution locally../local ├── docker-compose-db.yml ├── docker-compose.yml ├── ready_local_db.sh ├── start.sh └── stop.sh
-
.github
: Directory holds github Actions workflow for frontend and API unit and integration testing respectively. Actions will trigger on pull request to respective branch and initiate testing before merge and if test fails, it will break the merge process.
We will be using this Github repository as our input source code repository and deploy BCSC application to multiple environments to Local (Docker Compose) and openshift through the Jenkins pipeline.
- As prerequistes for local deployment, you require docker and docker-compose and git cli. Please follow links to install instructions.
- Docker Installation: Docker installation Instructions
- Docker Compose Installation: Docker Compose Instructions
- Git Installation: Git Installation Instructions
For local deployment, clone the github repository and change the start.sh
and stop.sh
permissions to executable and run the start,sh to setup local environment.
Follow below steps:
git clone https://github.com/AOT-Technologies/vue-node-template.git
cd deployment/local/
chmod +x *.sh
# Will bring your application up and open local application URL in browser
sh start.sh
# To shutdown the application
sh stop.sh
We will be using this Github repository as our input source code repository and deploy code challenge project to multiple environments to Local (Docker Compose), AWS and openshift through the different CI Platforms as AWS CodePipeline and Jenkins pipeline.
- As prerequistes for local deployment, you require docker and docker-compose and git cli. Please follow links to install instructions.
- Docker Installation: Docker installation Instructions
- Docker Compose Installation: Docker Compose Instructions
- Git Installation: Git Installation Instructions
For local deployment, clone the github repository and change the start.sh
and stop.sh
permissions to executable and run the start,sh to setup local environment.
Follow below steps:
git clone https://github.com/AOT-Technologies/vue-node-template.git
cd deployment/local/
chmod +x *.sh
# Will bring your application up and open local application URL in browser
sh start.sh
# To shutdown the application
sh stop.sh
Branching and release strategy: Branching_and_release.pdf
- As a prerequisites for openshift deployment , you require openshft oc-cli or kubectl. Please follow below instruction to install.
- Openshift Cli Installation: Openshift Cli installation instructions
- Kubectl Installation: Kubectl installation instruction
-
Step 1: apply netwrok security policies as pathfinder platform deny all traffic by default even within openshift project (namespace).
cd opensshift/network_policies oc login oc apply -f nsp_tools.yaml -n oultzp-tools oc apply -f nsp_dev.yaml -n oultzp-dev oc apply -f nsp_test.yaml -n oultzp-test oc apply -f nsp_prod.yaml -n oultzp-prod
-
Step 2: Install buildConfig in the tools namespace.
cd openshift oc process -f ./selfservice-ui/web-build.yaml | oc apply -n oultzp-tools -f - oc process -f ./selfservice-api/api-build.yaml | oc apply -n oultzp-tools -f - oc process -f ./selfservice-db/db-build.yaml | oc apply -n oultzp-tools -f -
-
Step 3: Install Deployment Configs, ConfigMap's, SecretMaps & pipeline buildConfig in the dev, test & prod environment respectively.
cd openshift -- Web deployment -- oc process -f ./selfservice-ui/web-build-configmap.yaml -p dev-ui.env | oc apply -n oultzp-dev -f - oc process -f ./selfservice-ui/web-secretmap.yaml -p dev-ui.env | oc apply -n oultzp-dev -f - oc process -f ./selfservice-ui/web-deploy.yaml -p dev-ui.env | oc apply -n oultzp-dev -f - -- DB Deployment -- oc process -f ./selfservice-db/db-deploy-configmap.yaml -p dev-db.env | oc apply -n oultzp-dev -f - oc process -f ./selfservice-db/db-deploy.yaml -p dev-db.env | oc apply -n oultzp-dev -f - -- API Deployment oc process -f ./selfservice-api/api-deploy-configmap.yaml -p dev-api.env | oc apply -n oultzp-dev -f - oc process -f ./selfservice-api/api-deploy.yaml -p dev-api.env | oc apply -n oultzp-dev -f -
-
Step 4: Deploy pipeline build config for dev,test & prod in tools namestace.
cd openshift oc process -f ./selfservice-ui/bcsc_pipeline.yaml -p dev-pipeline.env| oc apply -n oultzp-tools -f - oc process -f ./selfservice-ui/bcsc_pipeline.yaml -p test-pipeline.env| oc apply -n oultzp-tools -f - oc process -f ./selfservice-ui/bcsc_pipeline.yaml -p prod-pipeline.env| oc apply -n oultzp-tools -f -