# Fiche Techniques DevOps Initialisation (10/08/2020 - 11/08/2020) ![](https://mk0wwweadeanetnfhmt9.kinstacdn.com/wp-content/uploads/2017/11/google_cloud_platform.png) ## Sommaire ## Tâches ### Obligatoires - [x] Créer le cluster (Duplication). - [x] Configurer kubectl pour accéder au cluster (kubeconfig) - [x] Créer branche Github - [ ] Modifier les variables d'environnement. - [x] Créer une nouvelle DB, modifier la clef api, créer un système de backup. - [x] Créer un bucket sur aws et changer la config pour désactiver la suppression auto des documents. - [x] Créer les nouveaux certificats. - [ ] Créer les nouvelles clefs api (Docusign, Stripe, AWS). - [x] Lancer le déploiement - [x] Exposer le déploiement - [x] Mettre en place Ingress-Nginx - [x] Créer les entrées DNS - [x] Mettre en place Grafana. - [x] Migrer la bdd sur la dernière migration ### Optionnelles - [ ] Créer un système de sécu pour éviter de rollback sans faire gaffe. - [ ] Réduire bdd test - [ ] Ajouter une restriction d'accès IP à CloudSQL ![](https://i.imgur.com/s8bS5sn.png) - [ ] Ajouter une restriction role à l'accès bdd - [ ] Ajouter au script de déploiement un avertissement à l'utilisateur sur l'environnement cible. ## Tips and Tricks - **Configurer kubectl sur un nouveau cluster** > Pour configurer l'utilisation d'un nouveau cluster existant par kubectl il faut utiliser la commande `gcloud container clusters get-credentials <CLUSTER-NAME>` - **Emplacement informations** >S'il y a un doute sur la localisation d'info normalement situé dans le docker-compose, il se peut qu'il se situe dans le déploiement. > - **Exposer le déploiement** > `kubectl expose deployment hellia.app.prod --type="LoadBalancer" --name="hellia--app--prod"` > - **Déployer le nginx pour router la bonne url pour au bon container** > `kubectl apply -f https://github.com/kubernetes/ingress-nginx/deploy/static/provider/cloud/deploy.yaml` > [Source](https://https://kubernetes.github.io/ingress-nginx/deploy/#gce-gke) > appliquer le ingress.yaml (dans le namespace default) > [Tuto](https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting) > Vérifier que ça fonctionne avec curl `curl -H "Host: app.hellia.fr" <EXTERNAL-IP-INGRESS-CONTROLLER-SERVICE>` - **Ajouter les entrées DNS** > Utiliser l'ip externe du Ingress controller > - **Installation de cert-manager > [Tuto](https://cert-manager.io/docs/installation/kubernetes/) > Il faut déployer les resources liès à cert-manager : `kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.16.1/cert-manager.yaml` > Troubleshoot : > C'est probabalement du à une installation incomplète. Il faut supprimer les resources créée : ` kubectl delete -f https://github.com/jetstack/cert-manager/releases/download/v0.16.1/cert-manager.yaml` > [Source](https://github.com/jetstack/cert-manager/issues/2053) > Et redéployer les resources