Installation avec Helm
Les installations de production de concourse sont faits avec Helm ou du Kubernetes. Généralement, vous avez un noeud principal et un ou plusieurs noeuds associés pour le traitement des jobs. L'avantage de cette architecture est le scalling. Si les jobs sont nombreux avoir plus de noeuds associés est un avantage considérable.
Installer Helm
Il faudra comme prérequis avoir helm d'installé sur la machine cible de l'installation.
Mac OS
brew install helm
Windows
choco install kubernetes-helm
ou
scoop install helm
Linux (apt)
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
Linux (rpm)
sudo dnf install helm
Linux (snap)
sudo snap install helm --classic
Installer Concourse CI par Helm
Le helm chart de concourse sur Github s'appelle concourse/concourse-chart. Le fichier de configuration du chart s'appelle values.yml. Il est super documenté et vous permet de comprendre en détails toutes les options de configuration.
Avant d'appliquer, remplacez <nom_installation> par un nom que vous voulez donnez aux déploiements.
Installation avec les valeurs par défaut
helm repo add concourse https://concourse-charts.storage.googleapis.com/
helm install <nom_installation> concourse/concourse
Installation avec des configurations personnalisées
helm repo add concourse https://concourse-charts.storage.googleapis.com/
helm install <nom_installation> -f values.yaml concourse/concourse
Configuration de ingress
Une fois installé, vous devez exposer votre installation. Généralement, ça passe pas ingress et un gestionnaire de certificats SSL. Voici des exemples de configurations:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: lets-encrypt
spec:
acme:
email: <votre-email>
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: <nom-ingress-tls>
solvers:
- http01:
ingress:
class: public
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <nom-meta>
namespace: default
annotations:
cert-manager.io/cluster-issuer: lets-encrypt
spec:
tls:
- hosts:
- <nom-de-domaine-concourse>
secretName: <nom-ingress-tls>
rules:
- host: <nom-de-domaine-concourse>
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: <nom-service-conteneurs>
port:
number: <port-expose-service>
À la fin de l'installation, il est important que vous devez vérifier l'état de vos pods, services, load balancers Kubernetes et diagnostiquer les problèmes éventuels. Les platformes étant différentes, les techniques d'installation des certificats SSL et de Ingress sont fonction des l'implémentations de la spécification.