Un générateur de "CV" basé sur l'activité publique Github.
Présentation de ClusterAPI qui permet de provisionner depuis un cluster k8s existant (management cluster) d'autres clusters k8s (target clusters) dans le cloud grâce a des CRDs (ex: AWSCluster, MachineDeployment). C'est encore en alpha mais ça a l'air très prometteur.
Un testeur de template Ansible en ligne
Des bonnes pratiques pour optimiser l'utilisation de repos git volumineux avec jenkins (reference repos, shallow clone, sparse checkout...)
Comment troubleshooter un cluster elasticsearch en utilisant l'api _cat
.
Ce post a été écrit il y a 5 ans mais la méthode et les commandes sont toujours d'actualité.
Pour utiliser gcloud
(cli GCP) avec Python3 (>=3.4) au lieu de Python2:
# Use the python3 interpreter on your path
$ export CLOUDSDK_PYTHON=python3
Un générateur de launchd.plist
pour executer des tâches schedulées sur MacOS.
Un plugin Helm qui permet de déclencher un rollback automatique suite à l'upgrade d'une release Helm en fonction d'une query Elasticsearch ou Prometheus
Un simple outils Python en ligne de commande qui reste la taille d'une image Docker et retourne une erreur si celle ci dépasse une taille donnée. A intégrer dans les CI pour s'assurer que les images Docker ne grossissent pas exponentiellement au fil du temps.
Un petit script groovy à lancer sur une instance Jenkins pour trouver l'arbre de dépendences des plugins installés:
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {
println "${it.getShortName()} (${it.getVersion()}) - ${it.getDependencies()}"
}
GCP fournis désormais des VM Windows disposant de docker pré-installé pour faire tourner des containers Windows.
Actuellement les images à utiliser sont:
- windows-2019-for-containers
- windows-2019-core-for-containers
- windows-1809-core-for-containers
- windows-1803-core-for-containers
(source: https://cloud.google.com/compute/docs/images#unshielded-images)
Pour générer un fichier ~/.gitignore_global
en fonction de son environnement.
Perso j'utilise https://www.gitignore.io/api/go,vim,gpg,code,linux,macos,emacs,python,packer,archive,ansible,vagrant,archives,terraform,jetbrains,virtualenv
Ensuite un petit coup de git config --global core.excludesfile ~/.gitignore_global
et on est tranquille
Powershell est disponible sur macos (brew install powershell-preview
). Pratique quand a pas envie de lancer un os windows juste pour tester un bout de code powershell. Bien il n'est pas possible sur les fonctions bas niveau de powershell...
A noter que c'est aussi dispo sur la plupart des distros linux: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux
For future reference.
Here are the links for getting Public IPv4 on various clouds.
Azure
curl -H Metadata:true "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text"
AWS
curl http://169.254.169.254/latest/meta-data/public-ipv4
GCP
curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
Since 169.254.169.254 is a global metadata server for these above cloud vendors, no need to use different domain names.
Procédure pour générer des OTP avec Hashicorp Vault pour les connexions SSH
Un générateur de meme "code compiling / github is down" :D
Pour visualiser l'historique d'un fichier sur GitHub
Kendrick Lamar sur des beats de Dr Dre
Avec Python2, dict.keys()
, dict.values()
et dict.items()
retournent une liste. Avec Python3, ces méthodes retournent un objet de type "dictionary view".
Utiliser une loop avec une de ces 3 méthodes renvoie l'erreur suivante: 'dict object' has no attribute \"dict_keys(['hosts'])
Il faut utiliser le filtre list pour convertir l'objet en liste:
vars:
hosts:
testhost1: 127.0.0.2
testhost2: 127.0.0.3
tasks:
- debug:
msg: '{{ item }}'
# Only works with Python 2
#loop: "{{ hosts.keys() }}"
# Works with both Python 2 and Python 3
loop: "{{ hosts.keys() | list }}"
Jenkins permet d'utiliser un repository de référence local en tant que cache pour les jobs.
- créer un mirroir du repository en local:
git clone --mirror git@github.com:my-user/my-repository.git
- configurer le job jenkins pour utilise le repo de référence:
Git SCM
=>Additional Behavior
=>Advanced clone behaviours
=>Path of the reference repo to use during clone
- mettre à jour régulièrement le repo de référence:
git fetch --all --prune
Les jobs vont alors utiliser ce repo local en tant que cache ce qui peut grandement accélérer les temps de builds pour les repos bien lourds.