Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for de-novo creation of all the OpenShift / NFS fixtures (in namespace wwp-int) #107

Open
wants to merge 62 commits into
base: master
Choose a base branch
from

Conversation

batKem
Copy link

@batKem batKem commented Aug 27, 2019

Pull-request for wwp-int feature:

  • This feature enables restoring a copy of the production infrastructure on a sandbox openshift infrastructure using production's NFS backups.
  • Script behavior on production and test namespaces should remain unchanged
  • Feature documentation in wp-ops/WWP-INT-DOC.txt

@domq domq changed the title Feature/wp int Support for de-novo creation of all the OpenShift / NFS fixtures (in namespace wwp-int) Sep 5, 2019
@LuluTchab
Copy link
Contributor

J'ai voulu recheck la PR pour tester mais je n'ai trouvé aucune modification suite à mes commentaires ni aucune réponse à ceux-ci. La documentation n'était pas clair quand j'ai fait mon premier test et elle n'a pas changé depuis donc je ne peux toujours pas tester...

@batKem
Copy link
Author

batKem commented Nov 20, 2019

J'ai voulu recheck la PR pour tester mais je n'ai trouvé aucune modification suite à mes commentaires ni aucune réponse à ceux-ci. La documentation n'était pas clair quand j'ai fait mon premier test et elle n'a pas changé depuis donc je ne peux toujours pas tester...

Bonjour, les modifications demandées ont été apportées:
e4950ed

Copy link
Contributor

@LuluTchab LuluTchab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alors j'ai essayé d'installer sur MiniShift mais ça ne passe pas... J'y suis allé un peu à l'aveugle car il n'y a rien dans la doc pour faire ça... Il faudrait donc compléter la doc pour ajouter la partie minishift.
J'ai trouvé la doc faite par @zuzu59 est la plus parlante car détaillée.

Voir aussi les commentaires sur les fichiers.


Il faut en premier se connecter sur OC:

![Image](https://raw.githubusercontent.com/epfl-idevelop/wp-ops/feature/wp-int/img/oc_login.gif)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zuzu59 Faudrait voir pour virer les GIF car on peu bien y voir ton token de connexion et c'est l'équivalent d'avoir mis un username/password 😉

Pour pouvoir récupérer les sauvegardes des sites Wordpress de la prod, il nous faut un *pod* de management qui aura une connexion *read only* sur le NAS (NFS) des sauvegarde de la prod.
```
cd wp-ops/ansible
./wpsible -l wp-blue
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cette commande ne passe pas. ça passe que si je fais ./wpsible

wp_veritas) echo "-i inventory/wp-veritas" ;;
esac
CONFIG=$(oc config current-context)
if [[ $CONFIG == "myproject/192-168-99-"*"developer" ]]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La détection de MiniShift n'est pas assez dynamique car la plage d'IP n'est pas forcément celle définie dans le script.
Proposition de changement qui part du principe que minishift se trouve dans /usr/sbin/ et qui récupère dynamiquement les infos dont on a besoin pour savoir si le projet correspond

Suggested change
if [[ $CONFIG == "myproject/192-168-99-"*"developer" ]]
minishift_project=""
# If minishift installed (we assume it is here)
if [[ -e /usr/sbin/minishift ]]
then
# looking for information to build project string
minishift_ip_port=`minishift console --url | awk -F\/ '{print $3}'`
minishift_ip=`echo $minishift_ip_port| awk -F: '{print $1}' | sed -e "s/\./-/g"`
minishift_port=`echo $minishift_ip_port| awk -F: '{print $2}'`
minishift_project="myproject/${minishift_ip}:${minishift_port}/developer"
fi
if [[ $CONFIG == $minishift_project ]]

CONFIG=$(oc config current-context)
if [[ $CONFIG == "myproject/192-168-99-"*"developer" ]]
then
echo "-i inventory/minishift -e " IPADRS="`curl https://api.ipify.org`" " "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L'utilisation de api.ipify.org ne fonctionne à priori pas quand on est dans une VM en NAT, correct? dans ce cas-là, il faudrait récupérer l'IP de la VM non ? ou celle de la VM de minishift ?
J'ai cherché des références/infos à IPADRS dans le code et sur le net mais rien trouvé...

```
./utils/install_oc.sh
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### MiniShift (uniquement si on veut faire tourner en local)
La documentation d'installation se trouve ici : https://www.novatec-gmbh.de/en/blog/getting-started-minishift-openshift-origin-one-vm/
A la fin de l'installation, copier le fichier `minishift` dans `/usr/sbin` ou créer un lien symbolique `/usr/sbin/minishift -> <pathToMiniShift>`

```

#### Ansible
Ansible va nous permettre d'automatiser l'installation de l'infra de tests.<br>
Copy link
Contributor

@LuluTchab LuluTchab Nov 25, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai dû installer ceci avant Ansible car ça ne fonctionnait pas sans.

Suggested change
Ansible va nous permettre d'automatiser l'installation de l'infra de tests.<br>
Installer libffi
> sudo apt-get install -y libffi-dev
Ansible va nous permettre d'automatiser l'installation de l'infra de tests.<br>

@LuluTchab
Copy link
Contributor

LuluTchab commented Nov 25, 2019

Quelques modifications sont proposées pour l'utilisation de Minishift. Si je les fais, ça me permet d'avancer dans la détection du fait que je suis bien sur Minishift mais je me heurte ensuite aux warning suivant et il ne se passe rien...
Il semble manquer quelque chose en rapport avec MiniShift dans inventory

La commande passée, comme dans la doc de @zuzu59 : ./wpsible -l wp-blue (à noter que j'ai quasi la même erreur, à l'exception du warning concernant "wp-blue" si j'exécute juste ./wpsible)

[WARNING]: Unable to parse /home/lulutchab/git-repos/wp-ops/ansible/inventory/minishift as an inventory source

[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

[WARNING]: Could not match supplied host pattern, ignoring: wp-blue

PLAY [Initial checks] ******************************************************************************************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: all-openshift-namespaces


PLAY [OpenShift namespaces] ************************************************************************************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: all-wordpress-deployments


PLAY [Wordpress deployments] ***********************************************************************************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: all-wordpresses


PLAY [WordPress instances] *************************************************************************************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: awx-poc-vpsi


PLAY [Ansible Tower (AWX) configuration] ***********************************************************************************************************
skipping: no hosts matched

PLAY RECAP *****************************************************************************************************************************************

@LuluTchab
Copy link
Contributor

Ces 2 lignes sont à double dans ansible/roles/awx-poc-vpsi/vars/main.yml (mais ça a déjà été mergé visiblement...)

awx_wpveritas_inventory_script_name: "Fetch wp-veritas sites"
awx_wpveritas_inventory_script_path: "../../../inventory/wp-veritas/wp_veritas_inventory.py"

@zuzu59
Copy link
Contributor

zuzu59 commented Nov 26, 2019 via email

Dominique Quatravaux and others added 16 commits February 7, 2020 17:17
- Pick up sshd keys out of today's running mgmt container
- Set up authorized_keys exactly like in the test instance (wwp-dev)
- Remove guard on mgmt.yml (thereby causing a conflict with
  wwp-int-mgmt.yml; still TODO: merge both)
- PVC is identical to production (even though we didn't previously handle this object with Ansible yet)
- DeploymentConfig is currently smarter on the wwp-int-mgmt.yml side, and cannot be unforked just yet
  (until such time that we can set database secrets in production like we do in wwp-int)
…e for restore tasks (cf Restore-Connector-doc.md)
Copy link
Member

@domq domq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bravo pour l'excellent travail ! Encore un peu de nettoyage de commentaires, et il faut que @LuluTchab revalide; ensuite ce sera bon.

@@ -16,6 +17,11 @@
# Can we use a handler instead?
- config

# TODO: Tu peux shooter les tâches (et leurs dépendances) "Backup",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Selon ta décision, il faut virer le TODO.


- name: Serving infrastructure
when: wp_can.configure
tags:
- config
import_tasks: "serving-infrastructure.yml"

# TODO: À partir d'ici, à garder; avant de livrer, ces tâches doivent
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idem — Selon ta décision, il faut virer le TODO.

@domq domq requested a review from LuluTchab February 7, 2020 16:44
@domq
Copy link
Member

domq commented Feb 7, 2020

@LuluTchab les changements concernant MiniShift ont été abandonnés dans le cadre de cette PR; @batKem s'y atellera dans une autre. Merci d'avance pour ta code review, et bon week-end !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants