Spegnere tutto

Ci sono momenti nella vita in cui il dolore diventa insostenibile. Situazioni in cui il cuore è così ferito che l’unica soluzione sembra essere spegnere tutto.

Ricordo perfettamente il giorno in cui presi quella decisione. Ogni dettaglio è impresso nella mia memoria: il luogo in cui mi trovavo, il colore della chat aperta davanti a me, il periodo dell’anno, persino cosa avevo mangiato quel giorno. È strano come, nei momenti cruciali della vita, tutto si cristallizzi nella mente con un’accuratezza quasi maniacale. Ogni particolare diventa un tassello di quel ricordo indelebile. E fu in quell’istante che mi feci una promessa: basta emozioni, basta aspettative, basta dolore. Dovevo proteggermi, e l’unico modo per farlo era spegnere tutto.

All’inizio funzionò. Vivevo in una sorta di bolla, distante, inaccessibile. Nessuna delusione, nessuna sofferenza. Eppure, con il passare del tempo, iniziai a rendermi conto che insieme al dolore, avevo spento anche tutto il resto. Avevo perso l’amore, il sesso, il calore di un abbraccio, la complicità, il desiderio. Ero diventato un’ombra di me stesso.

Come spesso, mi piace accostare una canzone ad un sentimento, e “La notte di Arisa” è perfetta:

“E se fosse l’ultima notte sarebbe bellissima, perduta tra le tue braccia a ridere di questa vita.”

Mi fermai, ascoltando ogni nota, ogni parola che sembrava parlare di me. La notte porta con sé il peso dei pensieri, ma anche la speranza che il buio non sia eterno.

Avrei voluto dire che in quel momento tutto è cambiato, che la luce ha vinto sul buio. Ma la verità è che sto ancora combattendo. Ogni notte è una battaglia tra la voglia di restare nell’ombra e il desiderio di lasciarmi scaldare da un nuovo giorno. E forse, proprio in questa lotta, sto iniziando a ritrovare me stesso.

10 leggi universali

Nella vita di tutti i giorni ci troviamo spesso a fronteggiare problemi, decisioni difficili e momenti di incertezza. E se ci fossero delle leggi universali che potessero guidarci verso una maggiore consapevolezza e benessere? Ecco dieci principi fondamentali che, se applicati con costanza, possono davvero trasformare la tua vita.

1. La Legge di Kidlins: Scrivere per Risolvere

Hai mai notato che scrivere un problema ti aiuta a vederlo in modo più chiaro? Quando metti nero su bianco le tue difficoltà, inizi automaticamente a trovare soluzioni. Il semplice atto di scrivere divide il problema in parti più gestibili, riducendone il peso mentale.

2. La Legge di Murphy: Affronta le Tue Paure

Più temiamo qualcosa, più essa sembra realizzarsi. Questo accade perché la nostra mente si concentra su ciò che temiamo, rendendolo più probabile. Il segreto? Cambia focus. Trasforma la paura in un’opportunità di crescita e impara a gestire le tue emozioni.

3. La Legge di Jung: Accettazione e Cambiamento

Non possiamo cambiare nulla se prima non lo accettiamo. Resistere alla realtà crea solo stress e frustrazione. Accettare significa riconoscere la situazione e poi lavorare attivamente per migliorarla.

4. La Legge del Talmud: Il Mondo è uno Specchio

Non vediamo le cose per come sono, ma per come siamo. Questo significa che il nostro stato d’animo e le nostre credenze influenzano il modo in cui interpretiamo la realtà. Per cambiare la nostra vita, dobbiamo prima cambiare noi stessi.

5. La Legge di Parkinson: Lavorare con Efficienza

Il lavoro si espande fino a riempire tutto il tempo che gli diamo. Se lasci una giornata intera per completare un compito, probabilmente impiegherai tutto il giorno. Ma se riduci il tempo a disposizione, sarai più produttivo e focalizzato.

6. La Legge di Tolstoj: La Felicità è nel Momento Presente

Essere felici non significa ottenere sempre ciò che desideriamo, ma imparare ad amare ciò che facciamo. La gratitudine per il presente è la chiave per una vita più appagante.

7. La Legge dell’Attrazione: Focalizzati su Ciò che Vuoi

Ciò su cui ti concentri tende ad espandersi nella tua vita. Se ti lamenti continuamente, attirerai più problemi. Se invece ti concentri sulle soluzioni e sulle opportunità, la tua realtà cambierà di conseguenza.

8. La Legge di Falkland: Non Decidere Troppo in Fretta

Quando non sei costretto a decidere, non decidere. Spesso la fretta porta a scelte sbagliate. Prenditi il tempo necessario per riflettere, soprattutto nelle decisioni importanti.

9. La Legge di Pareto: Il 20% degli Sforzi Porta all’80% dei Risultati

Identifica le attività che portano il massimo risultato con il minimo sforzo. Concentrati su ciò che conta davvero e impara a delegare o eliminare ciò che è superfluo.

10. La Legge di Einstein: Comprendi per Spiegare

Se non riesci a spiegare qualcosa in modo semplice, significa che non l’hai ancora capita davvero. La chiarezza è il segnale di una comprensione profonda. Studia, semplifica e condividi la tua conoscenza.

Automated WordPress Deployment with GitOps: With GitHub, Helm, Argo CD, and Kubernetes

In today’s fast-paced development environment, deploying and managing applications within Kubernetes clusters can be challenging. However, leveraging the right tools and workflows can simplify and automate this process, enhancing both efficiency and reliability. This article demonstrates how to deploy a WordPress application using GitHub, Helm charts, Argo CD, and Kubernetes, streamlining the deployment process and enabling developers to concentrate on creating exceptional software.

Setting Up the Environment

Before diving into the deployment process, it’s essential to set up the necessary tools and environments. This includes:

Setting Up GitHub Repository:

Create a GitHub repository to store Helm charts for both MySQL and WordPress applications. This repository will serve as the central source for version-controlled Helm charts.

Installing Helm:

Develop Helm charts for MySQL and WordPress applications needs Helm software. Helm charts define the structure and configuration of Kubernetes resources required to deploy the applications.

Configuring Argo CD:

Install Argo CD, a GitOps continuous delivery tool, on your Kubernetes cluster. Configure Argo CD to sync with the GitHub repository containing the Helm charts.

Helm Chart Development

1. MySQL Helm Chart:

Define the required Kubernetes resources for deploying a MySQL database, including Deployment, Service, and PersistentVolumeClaim (PVC). Configure parameters for customizing database settings such as username, password, and database name.

2. WordPress Helm Chart:

Develop a Helm chart for deploying the WordPress application, including Deployment, Service, and volume resources. Configure parameters for customizing WordPress settings such as site name, admin username, and password.

Next, let’s delve into the development of Helm charts for MySQL and WordPress applications:

  1. Clone your Github repository.
git clone <repository-link>

2. Create two folder inside it, one is mysql and other is wordpress

3. Create Chart.yaml file and templates folder, values.yaml file is optional

4. In chart file, copy below content :

apiVersion: v2
name: mysql
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

5. In templates folder, place all your manifests related to mysql, here we have three, deployment , service , volume .

Content of the files :

# volume.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
# deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:latest
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wordpress
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
# service.yaml

apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None

6. In the same way, we will create wordpress chart also.

Content of the files :

#  Chart.yaml

apiVersion: v2
name: wordpress
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"
# deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:latest
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
- name: WORDPRESS_DB_USER
value: wordpress
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wp-pv-claim
# service.yaml

apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
selector:
app: wordpress
tier: frontend
type: LoadBalancer
# volume.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi

6. Use the helm lint command to test the Helm chart locally:

helm.exe lint <dir-path>

7. Add robots.txt at the root location of the repository. This will avoid bot crawling on the Helm repository.

echo -e “User-Agent: *\nDisallow: /” > robots.txt

8. Package your Helm chart

helm.exe package mysql/
helm.exe package wordpress/

This will create .tgz file at root location of the repository.

GitHub Repository Setup

Once the Helm charts are developed, it’s time to upload them to the GitHub repository:

  1. Creating Helm repository using github pages.

→ Select your branch in the Source section.

→ Click on Save.

→ You will find a link for your public Helm chart repository.

→ Click on the link and wait for some time to see your README.md contents on the screen, as shown below.

2. Creating index.yaml file for Helm repository.

helm.exe repo index --url <repo-link> .

3. Pushing Helm Charts:

Add Helm chart directories to the GitHub repository and commit changes. Ensure that the directory structure follows the Helm chart conventions.

Argo CD Integration

Integrate the GitHub repository containing Helm charts with Argo CD for automated deployments:

1. Adding Helm Repository:

In the Argo CD UI, navigate to Settings > Repository and add the GitHub repository URL as a Helm repository. Configure synchronization settings to enable automatic syncing.

2. Creating Applications:

Create two new applications in Argo CD for MySQL and WordPress, specifying the Helm chart paths and version constraints. Argo CD will automatically detect changes in the Helm charts and initiate deployments.

MYSQL :

WORDPRESS :

Deployment and Accessing WordPress

With the setup complete, Argo CD will automatically sync and deploy the MySQL and WordPress applications to the Kubernetes cluster:

Deployment Process:

Argo CD will pull the latest Helm charts from the GitHub repository, apply the desired configurations, and deploy the applications to the Kubernetes cluster.

Accessing WordPress:

Once the deployments are complete, access the WordPress site by navigating to the specified Ingress URL. Log in using the provided credentials and start configuring your WordPress site.

Forse siamo una canzone

Mi piace pensare a certe storie in questo modo: si fondono con una canzone, e ogni volta che la ascolti, senti che appartiene a quella storia.

Ogni tanto mi ritrovo qui a risentire questa canzone e non può che ritornarmi in mente tu. Me la fece sentire un pomeriggio, non era mio genere e non amavo Cremonini, anzi mi stava sulle palle, ma subito dopo il primo ascolto fu amore a prima vista. Io e te, che eravamo argento fra le stelle, che abbiamo sempre sognato un futuro assieme, che non abbiamo mai smesso di credere in “noi” nonostante la distanza ci stesse distruggendo, tu che sei stato il solo grado di capirmi, e che mi ha regalato la sera più bella della mia vita quando in quella stanza di albero a Firenze mi ha detto che avevi letto il blog, esattamente dove non dovevi.

Poi un giorno “lui si svegliò senza lei nudo nella tempesta” e ho dovuto ricominciare tutto da capo, stavolta senza di te al mio fianco, a piccoli passi.

Nell’oscurità

È ormai da qualche giorno che mi ronza in testa questa frase:

“La vittoria è celebrata nella luce, ma è vinta nell’oscurità”.

Questa frase è apparsa nella prima puntata di “Dune: la profezia”, che ho rivisto ultimamente per poter vedere il secondo episodio con una memoria rinfrescata.

Più ci penso e più mi convinco che i momenti più significativi della nostra vita, seppur celebrati sotto i riflettori, in realtà nascono altrove…

Nascono nell’intimità delle nostre scelte quotidiane e nel silenzio delle ore dedicate ad un impegno spesso invisibile agli altri.


Oggi più che mai, la nostra è la società del visibile.

Misuriamo il nostro valore e il nostro successo con metriche decise in qualche azienda della Silicon Valley.

Cuoricini, like, visualizzazioni, followers, condivisioni.

Che si tratti della laurea, una gara sportiva, la nascita di un figlio, una vacanza, un concerto: se non celebriamo questi accadimenti nella luce degli schermi dei nostri smartphone, sentiamo quasi di non averli vissuti davvero.

Ed è diventata talmente importante questa celebrazione sotto i riflettori digitali, che c’è chi sente la pressione di dover fingere questi successi non ancora raggiunti con filtri per video e foto, auto sportive a noleggio, orologi di lusso falsi, un eccessivo ricorso alla chirurgia estetica o vacanze pagate con dei prestiti.

Per questo oggi ciò che è invisibile, ciò che è autentico, è più importante che mai.

Da questo punto di vista, l’oscurità non è un luogo di paura, ma uno spazio di potenzialità.

È nell’oscurità, lontano dai riflettori, che impariamo a confrontarci con noi stessi e le nostre insicurezze.

È nell’oscurità, di quei giorni senza infamia e senza lode, che impariamo a coltivare le nostre competenze e la nostra costanza.

È nell’oscurità, della vita non condivisa a mezzo social, che assaporiamo il valore dei rapporti autentici.

La vera vittoria è già nostra, ogni volta che scegliamo di fare un passo avanti, anche quando nessuno ci sta guardando.

Abbraccia l’invisibile caro Luigi. Coltiva la tua definizione di successo lontano dai riflettori.

Ciò che fai oggi nell’oscurità, sarà ciò che illuminerà il tuo domani.


La Lezione di vita di Simone

Caro figlio mio,

voglio raccontare qui una storia di coraggio, una di quelle che mi ha lasciato senza parole e pieno di ammirazione. Sei ancora un bambino, hai solo nove anni, ma dimostri una forza e una maturità che mi ispirano profondamente.

Ricordo quando, lo scorso anno, hai preso la difficile decisione di lasciare la squadra della Cambiaghese, la squadra dei tuoi compagni di scuola, di tutti quelli che conoscevi bene. Passare all’Agrate significava uscire dalla tua comfort zone, una scelta dura a qualsiasi età, figuriamoci alla tua. Sapevi bene che lasciare la Cambiaghese avrebbe significato anche staccarti dai tuoi amici e abbandonare tutto ciò che avevi costruito in campo e fuori, ma l’hai fatto con coraggio, desideroso di crescere e metterti alla prova.

Quest’anno, però, ti sei superato. Non solo hai accettato di lasciare la sicurezza della tua vecchia squadra, ma hai deciso di affrontarla sul campo, nello scontro inevitabile di questa stagione. E non è stato affatto facile. La settimana precedente, hai subito ogni tipo di pressione: quasi tutta la scuola, con un pizzico di invidia, ti ripeteva che avresti perso. Quella degli adulti : “Ue Simo, sei pronto a perdere?” E non era solo una questione di parole: sapevi che avresti giocato con la squadra B dell’Agrate, non con la A, aumentando così la possibilità di perdere.

Per metterti un po’ di pace, ti ho persino dato una via d’uscita, una di quelle comode e rassicuranti. Ti ho detto che avrei potuto parlare con il mister per evitarti la partita, oppure avrei potuto chiedere di inserirti nella squadra A. Ma tu, con una maturità che mi ha stupito, hai scelto di non scappare, di non cercare scorciatoie. Hai voluto affrontare tutto di petto, con il coraggio che serve per essere un vero campione e, ancora di più, per essere una persona che crede in se stessa, e questo caro figlio mio, ti servirà nella vita !

E così hai giocato. Non solo hai dato il massimo, ma l’hai fatto con una grinta straordinaria, in un ruolo che nemmeno era il tuo. Hai chiuso l’incontro con un clamoroso 8-1, senza mai perdere il rispetto per i tuoi avversari, i tuoi vecchi compagni. Hai festeggiato con misura, senza infierire, mostrando rispetto anche nei giorni seguenti. Hai dimostrato che il vero coraggio non sta solo nel vincere, ma anche nel saper rispettare gli altri, soprattutto quando si vince.

Chissà come sarebbe andata se fosse successo il contrario. Ma quello che conta, oggi, è che hai imparato una lezione che ti servirà per tutta la vita: il coraggio di credere in te stesso e di accettare le sfide, sapendo che a volte il risultato è meno importante del percorso che hai scelto di fare. Sono orgoglioso di te, figlio mio.