Configuration
Une fois le dépôt socle cloné, lancez une première fois la commande suivante depuis votre environnement de déploiement :
ansible-playbook install.yaml
Elle vous signalera que vous n'avez encore jamais installé le socle sur votre cluster, puis vous invitera à modifier la ressource de scope cluster et de type dsc nommée conf-dso via la commande suivante :
kubectl edit dsc conf-dso
Vous pourrez procéder ainsi si vous le souhaitez, mais pour des raisons de traçabilité et de confort d'édition vous préférerez peut être déclarer la ressource dsc
nommée conf-dso
dans un fichier YAML, par exemple « ma-conf-dso.yaml », puis la créer via la commande suivante :
kubectl apply -f ma-conf-dso.yaml
Voici un exemple de fichier de configuration valide, à adapter à partir de la section spec, notamment au niveau du champ "global.rootDomain" (votre domaine principal précédé d'un point), des mots de passe de certains outils, du proxy ainsi que des sections CA et ingress :
---
kind: DsoSocleConfig
apiVersion: cloud-pi-native.fr/v1alpha
metadata:
name: conf-dso
spec:
additionalsCA:
- kind: ConfigMap
name: kube-root-ca.crt
exposedCA:
type: configmap
configmap:
namespace: default
name: ca-cert
key: ingress.crt
argocd:
admin:
enabled: true
password: WeAreThePasswords
values:
image:
registry: docker.io
repository: bitnami/argo-cd
tag: 2.7.6-debian-11-r2
certmanager: {}
cloudnativepg: {}
console:
dbPassword: AnotherPassBitesTheDust
values: {}
gitlab:
values: {}
gitlabOperator: {}
gitlabRunner: {}
global:
environment: production
projectsRootDir:
- my-root-dir
- projects-sub-dir
rootDomain: .example.com
harbor:
adminPassword: WhoWantsToPassForever
pvcRegistrySize: 50Gi
values:
nginx:
image:
repository: docker.io/goharbor/nginx-photon
tag: v2.9.1
portal:
image:
repository: docker.io/goharbor/harbor-portal
tag: v2.9.1
core:
image:
repository: docker.io/goharbor/harbor-core
tag: v2.9.1
jobservice:
image:
repository: docker.io/goharbor/harbor-jobservice
tag: v2.9.1
registry:
registry:
image:
repository: docker.io/goharbor/registry-photon
tag: v2.9.1
controller:
image:
repository: docker.io/goharbor/harbor-registryctl
tag: v2.9.1
trivy:
image:
repository: docker.io/goharbor/trivy-adapter-photon
tag: v2.9.1
notary:
server:
image:
repository: docker.io/goharbor/notary-server-photon
tag: v2.9.1
signer:
image:
repository: docker.io/goharbor/notary-signer-photon
tag: v2.9.1
database:
internal:
image:
repository: docker.io/goharbor/harbor-db
tag: v2.9.1
redis:
internal:
image:
repository: docker.io/goharbor/redis-photon
tag: v2.9.1
exporter:
image:
repository: docker.io/goharbor/harbor-exporter
tag: v2.9.1
ingress:
annotations:
route.openshift.io/termination: edge
tls:
type: tlsSecret
tlsSecret:
name: ingress-tls
method: in-namespace
keycloak:
values:
image:
registry: docker.io
repository: bitnami/keycloak
tag: 19.0.3-debian-11-r22
kubed: {}
nexus:
storageSize: 5Gi
proxy:
enabled: true
host: 192.168.xx.xx
http_proxy: http://192.168.xx.xx:3128/
https_proxy: http://192.168.xx.xx:3128/
no_proxy: .cluster.local,.svc,10.0.0.0/8,127.0.0.1,192.168.0.0/16,api.example.com,api-int.example.com,canary-openshift-ingress-canary.apps.example.com,console-openshift-console.apps.example.com,localhost,oauth-openshift.apps.example.com,svc.cluster.local,localdomain
port: "3128"
sonarqube:
postgresPvcSize: 25Gi
values:
image:
registry: docker.io
repository: sonarqube
edition: community
tag: 9.9.2-{{ .Values.edition }}
sops:
values:
image:
tag: 0.11.0
vault:
values:
injector:
image:
repository: docker.io/hashicorp/vault-k8s
tag: 1.2.1
pullPolicy: IfNotPresent
agentImage:
repository: docker.io/hashicorp/vault
tag: 1.14.0
server:
image:
repository: docker.io/hashicorp/vault
tag: 1.14.0
pullPolicy: IfNotPresent
updateStrategyType: RollingUpdate
Les champs utilisables dans cette ressource de type dsc peuvent être décrits pour chaque outil à l'aide de la commande kubectl explain
. Exemple avec argocd :
kubectl explain dsc.spec.argocd
Utilisation de vos propres values
Comme nous pouvons le voir dans l'exemple de configuration fourni ci-dessus, plusieurs outils sont notamment configurés à l'aide d'un champ values
.
Il s'agit de valeurs de chart Helm. Vous pouvez les utiliser ici pour surcharger les valeurs par défaut.
Voici les liens vers les documentations de chart Helm pour les outils concernés :
S'agissant du gel des versions de charts ou d'images pour les outils en question, nous vous invitons fortement à consulter la section détaillée Gel des versions située plus bas dans le présent document.