Developpement du Cloud-Challenge
Pré-requis
NodeJS >= 16.0.0
npm >= 8.0.0
Docker
🐳git
IDE
(VSCode recommandé)
Installation de l'environnement
Si vous souhaitez contribuer au projet le dépôt principal est gameday-master et pour y avoir accès il faudra demander à ce que l'on vous donne les droits sur le groupe Gitlab Gameday.
Pensez à configurer les hooks git personnalisés pour qu'ils lancent automatiquement le formattage des fichiers lors des commits avec la commande :
git config core.hooksPath .githooks
Une fois ce dépôt cloné voici les étapes à réaliser pour lancer l'application en mode dévellopement :
1️⃣ Connexion
Les images Docker de base, utilisées pour construire les images finales, sont stockées dans l'Artifactory d'Ippon. Donc pour pouvoir build il faut s'y connecter avec le profil.
echo '<YOU_KNOW_IT>' | docker login --password-stdin -u cloud-challenge docker-repository.artifactory.ippon.fr
echo '<YOU_KNOW_IT>' | docker login --password-stdin -u cloud-challenge docker-io-remote.artifactory.ippon.fr
Tout au long de votre installation de nombreuses variables <YOU_KNOW_IT>
seront à récupérer sur le dépôt gameday-master > Settings > CI/CD > Variables.
2️⃣ Variables d'environnement
Pour gérer les variables d'environnement utiles aux différents services créer un fichier nommé .env
à la racine du projet :
GIT_TOKEN="<YOU_KNOW_IT>"
API_URL="http://localhost:4000"
CLOUDPDF="http://localhost:7000"
AWS_ACCESS_KEY_ID=<YOU_KNOW_IT>
AWS_SECRET_ACCESS_KEY=<YOU_KNOW_IT>
SQS_URL_GAMEDAY="https://sqs.eu-west-1.amazonaws.com/162341927928/gameday.fifo"
SQS_URL_STAFFING="https://sqs.eu-west-1.amazonaws.com/162341927928/staffing.fifo"
ENVIRONNEMENT="DEV"
ROLE_AWS_ADMIN="gmd_admin_dev"
COGNITO_USER_POOL_ID_TEAM="eu-west-1_8OHxjaOy3"
COGNITO_CLIENT_ID_TEAM="7f874clbi9j14dub7cr2e1r3gu"
FILE_BUCKET='candidate-report-cloud-challenge-dev'
AWS_DEFAULT_REGION=eu-west-1
CLOUDMAPPER="http://localhost:3000"
REGION=eu-west-1
PRIVATE_KEY="<YOU_KNOW_IT>"
CACHE_URL="localhost"
KEYCLOAK_URL=""
KEYCLOAK_REALM=""
KEYCLOAK_CLIENT_ID=""
AZURE_ACCOUNT="storageaccountgameday"
AZURE_CLIENT_ID="<YOU_KNOW_IT>"
AZURE_TENANT_ID="<YOU_KNOW_IT>"
AZURE_CLIENT_SECRET="<YOU_KNOW_IT>"
S3_SCENARIOS_URL="https://static-files-cloud-challenge-dev.s3.eu-west-1.amazonaws.com"
Certaines de ces variables changent à chaque reconstruction de l'infrastructure il faut donc aller les récupérer en output des Terraform du dépôt gameday-infra, notamment COGNITO_USER_POOL_ID_TEAM
et COGNITO_CLIENT_ID_TEAM
.
Pour le dashboard il faut aussi créer un fichier env-config.js
dans le dossier dashboard/public
:
window._env_ = {
API_URL: "http://localhost:4000",
REGION: "eu-west-1",
GITLAB_TOKEN: "<YOU_KNOW_IT>",
AWS_ACCESS_KEY_ID: "<YOU_KNOW_IT>",
AWS_SECRET_ACCESS_KEY: "<YOU_KNOW_IT>",
CLOUDMAPPER_API: "http://localhost:3000/api",
CLOUDMAPPER: "http://localhost:3000",
CLOUDPDF: "http://localhost:7000",
PRIVATE_KEY: "<YOU_KNOW_IT>",
COGNITO_USER_POOL_ID_TEAM: "eu-west-1_8OHxjaOy3",
COGNITO_CLIENT_ID_TEAM: "7f874clbi9j14dub7cr2e1r3gu",
KEYCLOAK_URL: "",
KEYCLOAK_REALM: "",
KEYCLOAK_CLIENT_ID: "",
S3_SCENARIOS_URL:
"https://static-files-cloud-challenge-dev.s3.eu-west-1.amazonaws.com",
};
3️⃣ Build et lancement
A la racine du projet lancez :
docker-compose -f docker-compose.dev.yml up -d --build -V
Après quelques minutes de build les différentes conteneurs du back se seront lancés.
Il ne vous restera plus qu'à aller dans le dossier dashboard
pour installer les dépendances avec :
npm i
Puis le lancer avec :
npm start
Suivant votre OS et configuration React peut ne pas détecter que le Cloudmapper occupe déjà le port 3000 et lancer le dashboard sur ce même port ce qui le rends innacessible. Pour remédier à cela il suffit de faire la commande export PORT=3001
avant de npm start
pour changer le port.
4️⃣ Accès aux interfaces
- frontend :
localhost:3001
- backend :
localhost:4000
⚠️ Certaines routes sont protégées par l'authentification - cloudmapper:
localhost:3000
- cloudpdf :
localhost:7000
- redis :
localhost:6379
5️⃣ Accès aux providers
- AWS
- Azure
Il suffit de faire une demande au helpdesk pour accéder à ces deux comptes :
- prod: compte AWS 864169518175 (ippon-gameday-master)
- dev: compte AWS 162341927928 (ippon-gameday-dev)
Il suffit de faire une demande au helpdesk pour avoir un compte global administrateur sur l'AD B2C ipponfrcloudchallenge.onmicrosoft.com ou faire cette demande aux anciennes personnes en charge du projet (Actuellement Tom BOY et Clément LECHEVALLIER).