Skip to main content

Glasscom

Hosting

Cluster AWS ECS

olicy-prod-c01

Repo Gitlab

https://gitlab.com/olicy/infra/aws/olicy-prod-c01-cf/-/tree/main

URL Prod

https://app.glasscom.fr/

Installation / Configuration

Au format AWS Cloudformation
  1. Créé le secret pull image docker
aws secretsmanager create-secret \
--name glasscom/GitlabDeployToken \
--description "Deploy Token GitLab pour glasscom ECS" \
--secret-string '{"username":"aws-ecs-glasscom-token","password":"gldt-XXXXX"}' \
--region eu-west-3
  1. Configurer l'ARN du TG de l'ALB (TargetGroupArnGlasscom)

Dans le fichier nested/ecs-service-glasscom.yaml

  1. Configurer le endpoint du cluster RDS partagé pour Glasscom (SharedDBClusterEndpoint)

Dans le fichier nested/ecs-service-glasscom.yaml

  1. Configurer l'ARN du cluster ECS (ClusterArn)

Dans le fichier nested/ecs-service-glasscom.yaml

  1. Créé le secret par defaut pour les BeDigital
secret default bedigital
aws secretsmanager create-secret \
--name bedigital/DefaultSecret \
--description "Secret default BeDigital" \
--secret-string '{
"APP_EMAIL":"delivery@olicy.fr",
"AWS_BUCKET":"bedigital-prod-eu",
"MAIL_FROM_ADDRESS":"noreply@be-digital.ap",
"MAIL_HOST":"smtp-relay.brevo.com",
"MAIL_MAILER":"smtp",
"MAIL_USERNAME":"aurelien@hubs.fr",
"MAIL_PASSWORD":"xsmtpsib-xxxxx",
"MAIL_PORT":"587"
}' \
--region eu-west-3
  1. Créer la base de données manuellement en ce connectant au serveur Aurora
warning

Utiliser le bastion SSH

CREATE DATABASE your_database_name;
CREATE USER 'nom_utilisateur'@'%' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'username'@'%';
FLUSH PRIVILEGES;
  1. Créer l'utilisateur iam
aws iam create-user --user-name glasscom-9kpe4pc3
aws iam add-user-to-group --user-name glasscom-9kpe4pc3 --group-name BeDigitalProd
aws iam create-access-key --user-name glasscom-9kpe4pc3
  1. Créer credential pour l'application
aws secretsmanager create-secret \
--name glasscom/AppConfig \
--description "Config sensitives pour Glasscom" \
--secret-string '{
"app_key":"base64:xMoeJRVLeN5PFVAaHzkJ+edMHslQp9yc5F2vVoWTKJ8=",
"db_name":"xxxx-xxxx",
"db_username":"xxxx-xxxx",
"db_password":"xxxxx",
"s3_access_key":"XXXX",
"s3_secret_key":"XXXX",
"LETRECO_AUTH_IDENT":"XXX",
"LETRECO_AUTH_PASSWORD":"XXX",
"LETRECO_AUTH_DOMAIN":"XXX",
"LETRECO_API_URL":"XXX",
"MERCI_FACTEUR_ACCESS_TOKEN":"XXX",
"MERCI_FACTEUR_API_URL","XXX",
"MERCI_FACTEUR_SERVICE_ID":"XXX",
"MERCI_FACTEUR_WEBHOOK_SECRET":"XXX",
"RINGOVER_API_KEY":"XXX"
}' \
--region eu-west-3
  1. Mettre à jour la stack pour indiquer l'ARN de AppConfig et DefaultSecret

Dans le fichier nested/ecs-service-glasscom.yaml

  1. Déployer la stack
aws cloudformation create-stack \
--stack-name olicy-prod-c01-glasscom-service \
--template-body file://nested/ecs-service-glasscom.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--region eu-west-3

Mettre à jour la stack

aws cloudformation update-stack \
--stack-name olicy-prod-c01-glasscom-service \
--template-body file://nested/ecs-service-glasscom.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--region eu-west-3

Débloquer lorsque le rollback n'a pas terminé correctement

aws cloudformation continue-update-rollback  --stack-name olicy-prod-c01-glasscom-service  --resources-to-skip ServiceGlasscomWorker --profile XXX

Crontab / Worker

Crontab

Il y a le cron php artisan schedule:run qui est lancé toutes les 10 minutes.

Worker

Un worker est en place qui surveille la queue.

Architecture

glasscom