Skip to main content

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.

githooks

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
secrets

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 :

.env
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"
caution

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 :

env-config.js
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
port 3000

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

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)