En este post explico una manera de reportar en un canal de Slack el status de deploy de flux en un cluster de kubernetes.
Buscando en foros, documentación y blog encontré una manera y la comparto. Asumo que tienen todo lo necesario configurado en el cluster.
Documentación adicional:
https://github.com/fluxcd/flux/tree/master/chart/flux
https://github.com/justinbarrick/flux-operator
Lo primero que tenemos que hacer es generar el siguiente archivo para deployar flux cloud, lo llamaremos fluxcloud.yaml
--- kind: Service apiVersion: v1 metadata: name: fluxcloud spec: selector: name: fluxcloud ports: - protocol: TCP port: 80 targetPort: 3032 --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: fluxcloud spec: replicas: 1 strategy: type: Recreate template: metadata: labels: name: fluxcloud spec: containers: - name: fluxcloud image: justinbarrick/fluxcloud:v0.3.6 imagePullPolicy: IfNotPresent ports: - containerPort: 3032 env: - name: SLACK_URL value: "https://hooks.slack.com/services/T0T1GDVCM/BMWGR38ER/tokeeeeennnnnV9JXQ4234" - name: SLACK_CHANNEL value: "#SlacReport(example)" # Or configure multiple channels # (comma separated =) string: # value: "#kubernetes=*,#team=team" - name: SLACK_USERNAME value: FluxCd - name: SLACK_ICON_EMOJI value: ":weaveflux:" - name: GITHUB_URL value: "https://github.com/example/kube/" - name: LISTEN_ADDRESS value: ":3032"
No ponemos en contexto con el cluster y lanzamos el siguiente comando para deployar FluxCloud.
kubectl apply -f fluxcloud.yaml
Ahora tenemos que generar el archivo de values para instalar Flux con Helm, destaco solo agrego los valores necesarios por conectar flux a floxcloud, los demas los agrega por defecto Helm. Al archivo lo llamaremos flux-values.yaml
additionalArgs: - --connect=ws://fluxcloud
Ahora deployaremos flux y lo conectaremos con flouxcloud, este se encargara de reportar los cambio en el cluster y en el repositorio de git seleccionado para el lanzamiento de releases
helm upgrade --install flux --set rbac.create=true --set helmOperator.create=true --set [email protected]:example/kube --set git.branch=development --set git.label=cluster fluxcd/flux -f flux-values.yaml
Para verificar la conexión puede ver el log del pod generado para flouxcloud, veran algo como lo siguiente:
kubectl log fluxcloud-54c5f84cc-ct58h -f log is DEPRECATED and will be removed in a future version. Use logs instead. [{#SlackReport *}] Using Slack exporter Request for:/v11/daemon client connected!
2 comentarios
Añade el tuyo →El unico problema que veo en fluxcloud es que no envia las notifications quando il deploy de una nueva release failed
Es verdad, es un punto negativo. Para eso yo uso Kubewacth https://github.com/bitnami-labs/kubewatch