Git
instalar CLI de GIT para poder ejecutar comandos en la consola.
https://git-scm.com/download/mac
MONGO COMPASS
Para conectarse a la base de datos Mongo, usar estas URLs de conexión por ambiente
Descarga en: https://www.mongodb.com/try/download/compass
URLs de conexión
Ambiente | URL Conexión |
---|---|
DESARROLLO |
|
QA |
|
STAGING |
|
AWS
Create AWS Access Keys
To get or create your access key ID and secret access key:
Login to aws https://console.aws.amazon.com/iam/ using iam user option
AccountId: 657809478030
Go to the IAM console at https://console.aws.amazon.com/iam/
On the navigation menu, choose Users.
Click your IAM user name (not the check box).
Open the Security credentials tab, and then choose Create access key.
To see the new access key, choose Show. Your credentials resemble the following:
Access key ID: AKIAIOSFODNN7EXAMPLE Secret access key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS MFA SETUP
Setting Up AWS MFA device
To enable MFA in AWS:
Go to the IAM console at https://console.aws.amazon.com/iam/
On the navigation menu, choose Users.
Click your IAM user name (not the check box).
Under Assigned MFA Device, click Manage and follow instructions to set it up
Your device AWS DEVICE ARN is shown there e.g.
arn:aws:iam::11111111110:mfa/user.lastname (Virtual)
Configurar roles
Después de que te hayan sido entregadas las credenciales de aws y hayas configurado 2FA, configurar los roles.
Haz click en cada una de las siguientes URLs:
dev:
https://signin.aws.amazon.com/switchrole?roleName=developers&account=766717554267
qa/staging:
https://signin.aws.amazon.com/switchrole?roleName=developers&account=549923646310
prod:
https://signin.aws.amazon.com/switchrole?roleName=sre-engineering-l0&account=540086856298
Saldrá la siguiente pantalla donde deberás de configurar con un nombre para identificar el ambiente y un color:
Una vez configurados los roles desconéctate de la cuenta y vuelve a ingresar.
Los roles podrás cambiarlos en la parte superior derecha del portal de aws, asegúrate siempre estar en la región de N. Virginia.
Herramientas a instalar
Java
Instalar Java version 8 (https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
Configurar JAVA_HOME ejecutando el siguiente comando (“abc”: reemplazar con la versión más actual que se instale):
Para zsh:
% echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_abc.jdk/Contents/Home' >> ~/.zshenv
Para bash:
$ echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_abc.jdk/Contents/Home' >> ~/.bash_profile
Visual Studio Code
https://code.visualstudio.com/download
Si estas acostumbrado a los shortcuts de intellij, puedes configurarselos a visual studio code siguiendo las instrucciones del siguiente plugin https://marketplace.visualstudio.com/items?itemName=k--kato.intellij-idea-keybindings
y usando el siguiente archivo
brew
Este paso instalara los Command Line Tools for Xcode lo cual podría tardar varios minutos pero servirá para otras instalaciones.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
pip
Una vez que Command Line Tools for Xcode esta instalado correr los siguientes comandos.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py
docker
https://hub.docker.com/editions/community/docker-ce-desktop-mac/
gradle
brew install gradle
awscli
Install VERSION 2
MAC
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" ; sudo installer -pkg AWSCLIV2.pkg -target /
WINDOWS: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-windows.html
Configurar (reemplazar Access Key ID, Secret y ARN(arn:aws:iam::657809478030:user/ramon.valdez) por los obtenidos anteriormente en la configuración de AWS: “Create AWS Access Keys”), los mismos valores para todos los ambientes:
DEV:
aws configure --profile developers-dev-long-term AWS Access Key ID [None]: <access_key> AWS Secret Access Key [None]: <secret_access_key> Default region name [None]: us-east-1 Default output format [None]: json echo 'aws_mfa_device = <user_arn>' >> ~/.aws/credentials echo 'assume_role = arn:aws:iam::766717554267:role/developers' >> ~/.aws/credentials
QA:
aws configure --profile developers-qa-long-term AWS Access Key ID [None]: <access_key> AWS Secret Access Key [None]: <secret_access_key> Default region name [None]: us-east-1 Default output format [None]: json echo 'aws_mfa_device = <user_arn>' >> ~/.aws/credentials echo 'assume_role = arn:aws:iam::549923646310:role/developers' >> ~/.aws/credentials
STAGING:
aws configure --profile developers-staging-long-term AWS Access Key ID [None]: <access_key> AWS Secret Access Key [None]: <secret_access_key> Default region name [None]: us-east-1 Default output format [None]: json echo 'aws_mfa_device = <user_arn>' >> ~/.aws/credentials echo 'assume_role = arn:aws:iam::549923646310:role/developers' >> ~/.aws/credentials
PROD:
aws configure --profile developers-prod-long-term AWS Access Key ID [None]: <access_key> AWS Secret Access Key [None]: <secret_access_key> Default region name [None]: us-east-1 Default output format [None]: json echo 'aws_mfa_device = <user_arn>' >> ~/.aws/credentials echo 'assume_role = arn:aws:iam::540086856298:role/developers' >> ~/.aws/credentials
finalmente validar que existan las 4 ambientes en el archivo:
vi ~/.aws/credentials
luego agrega estos dos perfiles adicionales short-term usando tu <access_key> y <secret_access_key>:
[developers-dev] assumed_role = True aws_access_key_id = <access_key> aws_secret_access_key = <secret_access_key> aws_session_token = FwoGZXIvYXdzENz//////////wEaDN4nOF6pnWgVc4mjKCK0AU/JjqLG58L/z1kvTjXgUL8Q0d1/ZUasmh9bKxgisVuGEvoSp5gXxljcSUD0Xr5kHJ6pGm/hwpa2rwf0R1ihzsoF5xUXzJDsO3g/CtA7MZbVdDPbWmIlJUYXh8yHQdxTNjGiQi1xq5S6RY+GvmoiNw9AqJ5hQPDsXUU29fGLTxODoWCwuiiv9roCURZgojMDMQhIqheYCZ8rHqjMJRWtQxNTn1wPjGq0GW4XD8lYJh4fOZeZzCip99uLBjItLPtSZfINYnqnpCtUILrFWcQoyzcNu4I3o67il0GsBQ7LelT+zNLnof0NrFrg aws_security_token = FwoGZXIvYXdzENz//////////wEaDN4nOF6pnWgVc4mjKCK0AU/JjqLG58L/z1kvTjXgUL8Q0d1/ZUasmh9bKxgisVuGEvoSp5gXxljcSUD0Xr5kHJ6pGm/hwpa2rwf0R1ihzsoF5xUXzJDsO3g/CtA7MZbVdDPbWmIlJUYXh8yHQdxTNjGiQi1xq5S6RY+GvmoiNw9AqJ5hQPDsXUU29fGLTxODoWCwuiiv9roCURZgojMDMQhIqheYCZ8rHqjMJRWtQxNTn1wPjGq0GW4XD8lYJh4fOZeZzCip99uLBjItLPtSZfINYnqnpCtUILrFWcQoyzcNu4I3o67il0GsBQ7LelT+zNLnof0NrFrg expiration = 2021-10-25 19:47:05 assumed_role_arn = arn:aws:iam::766717554267:role/developers [developers-qa] assumed_role = True assumed_role_arn = arn:aws:iam::549923646310:role/developers aws_access_key_id = <access_key> aws_secret_access_key = <secret_access_key> aws_session_token = FwoGZXIvYXdzEN3//////////wEaDPQjUqYduHVll0zlKCK0AcAQ8uhpJ2IEqFYdJxKIiMpBKUms2r0pZcb7+61k8wrdp7O5LRZ9aBr20ShGCeZPKYuauFxlFUGriBDt9vEBbXejyDASdNdZB2wzSPvEGwvwusagwKase+gBZ+QRVV4Ed7XxPlc3y3rmGFNw0cYUEvKzH8MaZQ/9/TkDeGa5i6lBcxhzpFiOegVkacFNLnABFrCba7uzLT9x2GOmgaGj7QzvflS3H3TwoMaVGdm0wkBh7N0yDSiBl9yLBjItq+i1yE+X934m7q/apZnvRzi+Am0QqE049qeGu/paTzKoBEdPzyXycqqeKaL8 aws_security_token = FwoGZXIvYXdzEN3//////////wEaDPQjUqYduHVll0zlKCK0AcAQ8uhpJ2IEqFYdJxKIiMpBKUms2r0pZcb7+61k8wrdp7O5LRZ9aBr20ShGCeZPKYuauFxlFUGriBDt9vEBbXejyDASdNdZB2wzSPvEGwvwusagwKase+gBZ+QRVV4Ed7XxPlc3y3rmGFNw0cYUEvKzH8MaZQ/9/TkDeGa5i6lBcxhzpFiOegVkacFNLnABFrCba7uzLT9x2GOmgaGj7QzvflS3H3TwoMaVGdm0wkBh7N0yDSiBl9yLBjItq+i1yE+X934m7q/apZnvRzi+Am0QqE049qeGu/paTzKoBEdPzyXycqqeKaL8 expiration = 2021-10-25 20:54:41
aws-mfa
https://github.com/broamski/aws-mfa
Crea un folder llamado bin en el to home user
mkdir ~/bin chmod -R 777 ~/bin cd ~/bin
git clone https://github.com/broamski/aws-mfa.git cd aws-mfa python setup.py install
Se recomienda este otro método más directo de instalación de aws-mfa sin usar git:
pip install aws-mfa
kubectl
https://docs.aws.amazon.com/es_es/eks/latest/userguide/install-kubectl.html (install the version that matches the current kubernetes cluster version in AWS EKS 1.17
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/darwin/amd64/kubectl chmod +x ./kubectl cp ./kubectl $HOME/bin/kubectl
Copiar el siguiente archivo en la ruta ~/.kube
Scripts de acceso a aws y kubernetes
Copiar el siguiente archivo en la carpeta ~/bin
Dar permisos de ejecución al archivo
chmod u+x ~/bin/login_aws.sh
Configurar los siguientes comandos en el archivo ~/.bash_profile
export PATH=$HOME/bin:$PATH alias login_aws='login_aws.sh' alias aws_dev="export AWS_PROFILE=developers-dev" alias aws_qa="export AWS_PROFILE=developers-qa" alias aws_staging="export AWS_PROFILE=developers-staging" alias aws_prod="export AWS_PROFILE=developers-prod" alias aws_dr=¨"export AWS_PROFILE=developers-techlead-prod"
Ejecutar el comando para cargar las variables.
source ~/.bash_profile
Dependiendo de la terminal due uses puede que necesites agregar este comando al archivo de configuración de tu terminal source ~/.bash_profile
configurar tokens de github
Configurar los siguientes comandos en los archivos:
~/.bash_profile
~/.zshenv
~/.zshrc
export PACKAGE_USERNAME=Spin-api-manager export PACKAGE_TOKEN=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
Ejecutar el comando para cargar las variables.
source ~/.bash_profile
login aws y kubernetes
Si configuraste el archivo de login_aws ejecutar los siguientes comandos para validar el acceso a kubernetes
login_aws dev aws_dev kubectl get pods
Ambientes
DESARROLLO login_aws dev aws_dev QA login_aws qa aws_qa STAGING login_aws staging aws_staging
Si no lo configuraste, puedes correr estos comandos
aws-mfa --profile developers-dev kubectl config use-context dev-context export AWS_PROFILE=developers-dev kubectl get pods
Notas:
para otros ambientes únicamente se debe de cambiar la palabra dev por (qa o staging)
para forzar renovar el token puedes usar la opción --force:
aws-mfa --profile developers-dev --force
Si un error de credenciales invalidas aparece:
Verifica que tu archivo de
~/.aws/credentials
este correctoSi el error persiste regresa a la configuración de aws-mfa y reemplaza
python setup.py install
porpython3 setup.py install
Asegurase de tener instalado pip
pip --version
Node
Instalar el entorno de node https://nodejs.org/en/
npm
El administrador de paquetes ya está habilitado en el entorno del node
yarn
npm install -g yarn
serverless
npm install -g serverless
DuoMobile (2FA)
install DuoMobile in your phone
Google Authenticator (2FA)
Instalar google autenticathor en tu celular
Clonar repositorios
Se debe contar con la configuración de SSH keys en github
$ git clone git@github.com:fintechdigitalventure/pagopop-server.git $ git clone git@github.com:fintechdigitalventure/pagopop-serverless.git
Intellij Community Edition
Instala Intellij y configura la versión default a java 1.8
Plugins
Instalar los siguientes plugins del marketplace
Lombok *
Git commit message Helper
EnvFile
Gradle *
*Es posible que ya vengan incluidos en la versión
git-commit-template
Seguir la guia para configurar el plugin
Code styling SPIN
Todo código que se desarrolle deberá ser formateado con los estándares de styling definidos pod SPIN. Para facilitar esto, IntelliJ permite dar de alta el styler con los las configuraciones de formato de código que serán aplicadas por IntelliJ al presionar CMD + OPTION + L
Es importante formatear el código antes de levantar cualquier PR.
Para configurar el styler de SPIN debes seguir estos pasos:
Abrir las preferencias de IntelliJ
Navegar a Editor → Code Style → Java → Engrane de Scheme → Import Scheme → IntelliJ IDEA code style XML
Seleccionar el siguiente archivo:
PAGOPOP-SERVER
HUSKY Commit Validator
En el proyecto pagopop server se usa husky para validar el formato de los commits para instarlo correr el comando.
npm install husky
Después de esto cada commit será validado con husky, si el formato no es correcto no permitirá el commit, para más información consultar /wiki/spaces/PAGOPOP/pages/469663759
Configuración ambiente local
Seguir las instrucciones del README del codebase para configurar kubernetes , AWS etc en local y poder ejecutar los servicios en tu local .
https://github.com/fintechdigitalventure/pagopop-server#readme
Add Comment