Skip to content

Commit

Permalink
update doc for kubeeconfig
Browse files Browse the repository at this point in the history
  • Loading branch information
titigmr committed May 3, 2023
1 parent 6a8208f commit 62d8dbf
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 15 deletions.
11 changes: 4 additions & 7 deletions .github/workflows/change-values.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,9 @@ on:
type: string
description: "Branche de déploiement"
secrets:
SA_SECRET:
KUBECONFIG:
description: 'Service account secret (run kubectl get serviceaccounts <service-account-name> -o yaml and copy the service-account-secret-name)'
required: true
CLUSTER_URL:
required: true
X_OVH_TOKEN:
required: true
API_OVH_TOKEN:
Expand All @@ -46,9 +44,8 @@ jobs:

- uses: azure/k8s-set-context@v3
with:
# kubectl
method: kubeconfig
kubeconfig: ${{ secrets.SA_SECRET }}
kubeconfig: ${{ secrets.KUBECONFIG }}

- name: Create secret for Kubernetes
uses: azure/k8s-create-secret@v4
Expand Down Expand Up @@ -83,9 +80,9 @@ jobs:
commit_message: "Version updated"

# To generate a kubeconfig, fill this file with informations available in theses commands:
# - token and ca
# - ${token} and ${ca}
# kubectl get secret -n <namespace> -o yaml <secret-service-account>
# - server
# - ${server}
# kubectl config view --minify -o 'jsonpath={.clusters[0].cluster.server}'

# apiVersion: v1
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/update-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@ jobs:
branch: ${{ github.ref_name }}
secrets:
# environment dependant
SA_SECRET: ${{ secrets.PREPROD_K8_TOKEN }}
KUBECONFIG: ${{ secrets.PREPROD_K8_CONFIG }}
X_OVH_TOKEN: ${{ secrets.PREPROD_OVH_TOKEN }}

# static variables
CLUSTER_URL: ${{ secrets.CLUSTER_URL }}
OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}
OS_USERNAME: ${{ secrets.OS_USERNAME }}
Expand Down
40 changes: 34 additions & 6 deletions infra/kube/cluster-config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
Exemple de configuration d'un cluster kubernetes pour l'installation de l'application


## 1. Ingress controller
## 1. Ingress controller

L'ingress controller permet de gérer connexions entrantes au cluster sous la forme d'un reverse proxy. Pour notre cas nous utiliserons `traefik` et activerons
- letsencrypt par défaut
- la redirectio en https automatique pour tous les ingress
- la redirection en https automatique pour tous les ingress


Ajout du dépôt traefik
Expand Down Expand Up @@ -70,13 +70,41 @@ Cette partie permet de créer un compte de service pour l'ajout des secrets via
kubectl apply -f sa.yaml -n <namespace>
```

Cette commande permet de :
Cette commande permet de :
- Créer un rôle permettant au service account de gérer les secrets dans son namespace
- Créer un SA (compte de service)
- Créer un secret permanent permettant de se connecter au cluster (via un token) en tant que compte de service, crée précédemment
- Ajouter le rôle crée à la première étape au compte de service

Pour récupérer le token dans un fichier
Par exemple, pour récupérer le kubeconfig pour l'environnement <env>

```bash
token=$(kubectl get secret -n basegun-<env> token-github -o jsonpath="{.data.token}" | base64 -d)
ca=$(kubectl get secret -n basegun-<env> token-github -o jsonpath="{.data.ca\.crt}")
server=$(kubectl config view --minify -o 'jsonpath={.clusters[0].cluster.server}')
```

Et remplir le yaml suivant :

```yaml
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
certificate-authority-data: ${ca}
server: ${server}
contexts:
- name: default-context
context:
cluster: default-cluster
namespace: default
user: default-user
current-context: default-context
users:
- name: default-user
user:
token: ${token}
```
kubectl get secret -n secret -n basegun-preprod token-github -o jsonpath="{.data.token}" | base64 -d > token.txt
```
Et ajouter le contenu du yaml dans le secret github <env>_K8_CONFIG

0 comments on commit 62d8dbf

Please sign in to comment.