Open utterances-bot opened 2 years ago
Bonjour Stéphane,
J'essaye de déployer awx en suivant pas-à-pas ton post, cependant la commande kubectl apply -f awx-pvc.yml
, bien que renvoyant persistentvolumeclaim/static-data-pvc created
, semble ne pas parvenir à aller au bout.
La commande kubectl get events
renvoie continuellement :
0s Warning ProvisioningFailed persistentvolumeclaim/static-data-pvc storageclass.storage.k8s.io "local-path" not found
0s Warning ProvisioningFailed persistentvolumeclaim/static-data-pvc storageclass.storage.k8s.io "local-path" not found
0s Warning ProvisioningFailed persistentvolumeclaim/static-data-pvc storageclass.storage.k8s.io "local-path" not found
Une idée de l'origine du problème ?
Quelques informations de contexte :
> kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.4", GitCommit:"e6c093d87ea4cbb530a7b2ae91e54c0842d8308a", GitTreeState:"archive", BuildDate:"2022-02-18T22:31:12Z", GoVersion:"go1.17.7", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.9", GitCommit:"b631974d68ac5045e076c86a5c66fba6f128dc72", GitTreeState:"clean", BuildDate:"2022-01-19T17:45:53Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"}
> git reflog
c02e059 (HEAD, tag: 0.17.0) HEAD@{0}: checkout: moving from devel to 0.17.0
Bonjour,
Quel utilitaire as-tu utilisé pour installer ton kube ? Moi je dis bein k3s qui fournit le storage-class local-path par défaut.
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 11d
Pas de problème tu peux le créer en fonction de l'utilitaire que tu as utilisé pour ton kube.
cdt
Bonjour, Le paramètre "resquests" ne limite pas les ressources, au contraire, il les positionne. C'est le paramètre "limits" qui est chargé de cela :
limits:
memory: "128Mi"
cpu: "500m"
Pour le gens sur minikube il faut passer le PVC en classe manual
storageClassName: manual
car
> kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) k8s.io/minikube-hostpath Delete Immediate false 18m
Bonjour Stéphane, Merci beaucoup pour ce step by step deployment. J'ai un souci depuis que j'ai essayé de déployer les dernières versions. Je suis sous K3S Tout se déploie plutôt bien :
#k get po
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-54787fcf67-fclp4 2/2 Running 0 5m55s
awx-postgres-13-0 1/1 Running 0 3m6s
awx-6b64c4d8b5-qtbmz 4/4 Running 0 2m48s
#k get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx-operator-controller-manager-metrics-service ClusterIP 10.43.204.241 <none> 8443/TCP 14m
awx-postgres-13 ClusterIP None <none> 5432/TCP 5m9s
awx-service NodePort 10.43.118.131 <none> 80:30080/TCP 4m54s
Mais voici ce que j'ai en log postgres :
#k logs -f awx-postgres-13-0 postgres
FATAL: password authentication failed for user "awx"
DETAIL: Connection matched pg_hba.conf line 99: "host all all all scram-sha-256"
Et du coup je n'accède pas à l'interface web, le pod awx redémarre en boucle. J'ai fait des recherches non concluantes sur le git de awx-operator mais sans succès. Je ne suis pas très familier à Kubernetes, mais j'avais réussi à suivre ton tuto sur les anciennes versions. Aurais-tu une idée ? Mes awx-pvc et awx-pv sont similaires aux tiens. Voici mon awx-deployment.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
spec:
postgres_storage_class: local-path
postgres_storage_requirements:
requests:
storage: 8Gi
projects_persistence: true
garbage_collect_secrets: false
projects_existing_claim: awx-projects-claim
service_type: nodeport
nodeport_port: 30080
security_context_settings:
runAsGroup: 0
runAsUser: 0
fsGroup: 0
fsGroupChangePolicy: OnRootMismatch
auto_upgrade: true
Merci bcp
Salut, Aie ça ne sent pas bon du tout. Il a perdu le mot de passe d'accès à la BDD. Et là je ne vois pas de solution à part repartir de zéro. Sauvegarde les données des PV avant de tout reinstaller.
Salut, as tu essayé de changé la classname ? Que donne la commande suivante :
kubectl get storageclasses
As tu testé ? storageClassName: standard
Bonjour Stéphane,
J'ai un souci sur l'installation, Quand je lance le déploiement, le pod postgres se lance mais pour awx j'ai un CrashLoopBackOff sur l'init container qui n'arrive pas à modifier le propriétaire et le groupe... Je ne vois pas d'où cela peut-il venir : NAME READY STATUS RESTARTS AGE awx-847b44bd7-ftgc6 0/4 Init:CrashLoopBackOff 5 (60s ago) 4m1s awx-operator-controller-manager-5c87bcdb4b-lxww6 2/2 Running 0 133m awx-postgres-13-0 1/1 Running 0 4m21s
2022-10-21T16:31:21+02:00 chmod: changing permissions of '/var/lib/awx/projects': Operation not permitted 2022-10-21T16:31:21+02:00 chgrp: changing group of '/var/lib/awx/projects': Operation not permitted 2022-10-21T16:32:48+02:00 chmod: changing permissions of '/var/lib/awx/projects': Operation not permitted 2022-10-21T16:32:48+02:00 chgrp: changing group of '/var/lib/awx/projects': Operation not permitted
Merci de votre support
Sur quelle stack l'as tu déployé ? k3s ? minikube ? Tu as cherché dans les issues du dépot de l'operator ? As tu testé avec une autre version ? https://github.com/ansible/awx-operator/releases export RELEASE_TAG=0.29.0
Alors j'ai déployé ça sur un cluster k8s on prem (une vm master ubuntu 22.04 et 3 workers même version avec kubeadm
j'ai un storage class qui pointe sur un serveur nfs qui fonctionne bien : nfs-client-retain qui est mount sur mon master et aussi sur les 3 workers
voici la config de mon pvc :
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: awx-projects-claim spec: accessModes:
Le pvc est bien bound
et voici le yaml de mes pv
apiVersion: v1 kind: PersistentVolume metadata: name: awx-postgres-13-volume spec: accessModes:
apiVersion: v1 kind: PersistentVolume metadata: name: awx-projects-volume spec: accessModes:
Et non je n'ai pas essayé avec la précédente release. Je suis resté en 0.30.0 Je vais faire le test avec la 0.29.0
Je te tiens au courant. après si tu vois un pb dans ma config, n'hésite pas !
Bon ça ne marche pas en 0.29.0 non plus. Tjrs ce pb de changement de droits. Après, afin de déployer des vm, des serveurs esxi, des pods sur Kubernetes, vaut-il mieux avoir ansible en dehors du cluster Kubernetes ou dedans il n’y aura pas de problème ?
A l'extérieur c plus long à installer quoiqu'il doit exister des playbooks tout pret. Mais étrange ce comportement
Oui.... Tu peux me faire un ls -la de ton répoirtoire où sont montés les pv et pvc ? Je pense vraiment à un problème de droits
Ca se peut que ce ne soit pas ton setup :) https://github.com/ansible/awx-operator/pull/1078
Alors j'ai réussi à passer outre cette histoire de droits en rajoutant ça dans le awx-deployment.yaml : security_context_settings: runAsGroup: 0 runAsUser: 0 fsGroup: 0 fsGroupChangePolicy: OnRootMismatch
Et maintenant j'ai cette nouvelle erreur :
Fatal glibc error: CPU does not support x86-64-v2
Et j'ai essayé de changer l'image d'awx comme décrit dans cet article mais ça ne passe pas... https://github.com/ansible/awx/issues/11879
En fait je ne sais pas comment insérer la version de l'image dans le awx-deployment.yml si tu as une idée ?
Cordialement
Salut, Peux tu changer le user/groupe des répertoires montés avec le id 1000:1000. Depuis la version 0.28 ce n'est plus le user root qui est utilisé par l'opérateur mais le user id 1000.
Ca ne fonctionne pas en changeant le id Error: stat /mnt/k8s-data/awx-data/postgres-13: no such file or directory
ls -la /mnt/k8s-data/ total 28 drwxrwxrwx 4 nobody nogroup 4096 oct. 24 09:50 . drwxr-xr-x 3 root root 4096 juin 28 09:27 .. drwxr-xr-x 4 nancre nancre 4096 oct. 24 20:42 awx-data drwx------ 2 nobody nogroup 16384 août 30 16:42 lost+found
ls -la /mnt/k8s-data/awx-data/ total 16 drwxr-xr-x 4 nancre nancre 4096 oct. 24 20:42 . drwxrwxrwx 4 nobody nogroup 4096 oct. 24 09:50 .. drwxrwxr-x 2 nancre nancre 4096 oct. 24 20:42 postgres-13 drwxrwxr-x 2 nancre nancre 4096 oct. 24 20:42 projects
Difficile de répondre sans accès. Tu es bien reparti de zéro?
Oui je suis reparti de zéro... Je pense que le problème vient de mon nfs le storage class que tu utilises est celui trouvé ici ? https://github.com/rancher/local-path-provisioner as-tu modifié le chemin dans les options du storage class ?
Bon finalement j'ai réussi.
D'abord pour l'erreur Fatal glibc error: CPU does not support x86-64-v2 il s'agissait d'un pb de confi sur les vm's de mon esxi. Ça, c'est corrigé !
Après j'ai pu déployer awx mais j'ai du laisser le user root. Ca ne passait pas avec le user id 1000.
Je creuserai cette piste plus tard.
Merci d'avoir pris le temps de me répondre
@YomoShitsu ton problème de droits vient du fait que l'init container ne fait plus ses chown
et chmod
en root
mais avec un user dont l'UID est 1000 : ansible/awx-operator#1055. Sur certains storage provisionner, ça coince. L'astuce est de faire ces tâches dans un init container dédié et qui utiliserait une image qui fonctionne avec root
C'est le but de la PR ansible/awx-operator#1078 qui vient d'être validée et devrait être embarquée dans la prochaine version de l'operator :crossed_fingers:
@stephrobert rien à voir mais je profite de ce post : je ne sais pas si ton article de blog parle de la méthode d'upgrade de l'operator mais avec un helm upgrade
seul pour le moment ça coince : ansible/awx-operator#1057. C'est lié au fait que le label selector helm.sh/chart
change avec chaque release de l'operator alors que c'est un champ immuable. Il faut donc faire un kubectl delete deployment awx-operator-controller-manager
pour supprimer le déploiement de l'operator avant de faire un helm upgrade
.
Je vais bientôt proposer une PR pour fixer ça mais ce sera un breaking change.
hello, j'ai cette erreur lors l’exécution du déploiement (kubectl apply -f awx-deployment.yml)
Error from server (BadRequest): error when creating "base": AWX in version "v1beta1" cannot be handled as a AWX: strict decoding error: unknown field "spec.postgres_init_container_resource_requirements"
Merci pour votre retour.
Aie ça sens le changement de niveau d'api. Peut être v1 et non plus v1beta.
Le jeu. 26 janv. 2023, 15:44, mehdia4ever @.***> a écrit :
hello, j'ai suivi le tuto, j'ai cette erreur lors l’exécution du déploiement (kubectl apply -f awx-deployment.yml)
Error from server (BadRequest): error when creating "base": AWX in version "v1beta1" cannot be handled as a AWX: strict decoding error: unknown field "spec.postgres_init_container_resource_requirements"
Merci pour votre retour.
— Reply to this email directly, view it on GitHub https://github.com/stephrobert/comment-hugo/issues/17#issuecomment-1405114661, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFGOPG3IW2K3IJILTLYRFDWUKETVANCNFSM5QBKISNA . You are receiving this because you were mentioned.Message ID: @.***>
j'ai rajouté le namespace a l'attribut metadata et la syntaxe fonctionne pour moi
apiVersion: awx.ansible.com/v1beta1 kind: AWX metadata: name: awx namespace: awx
Merci
Salut. Essaie dans un premier temps de revenir à la version utilisée dans le billet. Des que je trouve 1h de tps libre, je mets à jour avec la nouvelle version.
Ça fait 2 client où j'abandonne AWX à cause de sa procédure d'installation.
La première fois car docker était interdit en production, la 2e fois à cause des restriction réseau drastiques (proxy filtrant+obligation d'utiliser des Nexus interne).
Je ne comprend pas les raisons technique qui empêcherait de fournir un RPM ou des images Docker "normales", ou une procédure d'install on premises sans autant de prise de tête. Je pensais cette époque revolue
Bonjour Stephane, D'abord, Merci bcp pour le blog. j'ai bien install' awx operator sur K8S, et j'ai pu l'upgradé de la version 18 vers 22.3.0. Mais j'ai une question pour augmenter le replicas de mon pod task ou web. dans la doc il parle d'ajouter le field task_replicas ou web_replicas, vue que je ne veux increaser que le task, j'ai mis le task_replicas à 2. Quand j'ai déployé je vois que le nombre de replicas 2, après un petit moment, il remet les replicas à 1 sans aucune intevention de ma part. avez vous svp une idée concernant ce sujet de replicas: NAME READY STATUS RESTARTS AGE awx-operator-controller-manager-5c95c6ff46-b2cx5 2/2 Running 0 8m45s gha-task-7f4bcf8fb5-t8pp5 0/4 PodInitializing 0 19s gha-task-7f4bcf8fb5-znnsj 4/4 Running 0 6m40s gha-web-6c477cfc9-6ppks 3/3 Running 0 4m57s
10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Successfully pulled image "quay.io/ansible/awx:22.3.0" in 1m4.99258301s 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-task 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-task 10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Container image "quay.io/ansible/awx-ee:latest" already present on machine 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-ee 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-ee 10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Container image "quay.io/ansible/awx:22.3.0" already present on machine 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-rsyslog 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-rsyslog 11m Normal SuccessfulCreate replicaset/gha-task-7f4bcf8fb5 Created pod: gha-task-7f4bcf8fb5-znnsj 5m30s Normal SuccessfulCreate replicaset/gha-task-7f4bcf8fb5 Created pod: gha-task-7f4bcf8fb5-t8pp5 57s Normal SuccessfulDelete replicaset/gha-task-7f4bcf8fb5 Deleted pod: gha-task-7f4bcf8fb5-t8pp5 11m Normal ScalingReplicaSet deployment/gha-task Scaled up replica set gha-task-7f4bcf8fb5 to 1 5m30s Normal ScalingReplicaSet deployment/gha-task Scaled up replica set gha-task-7f4bcf8fb5 to 2 57s Normal ScalingReplicaSet deployment/gha-task Scaled down replica set gha-task-7f4bcf8fb5 to 1 10m Normal Scheduled pod/gha-web-6c477cfc9-6ppks Successfully assigned gha-awx/gha-web-6c477cfc9-6ppks to dtcodevwrk691 10m Normal Pulled pod/gha-web-6c477cfc9-6ppks Container image "docker.io/redis:7" already present on machine 10m Normal Created pod/gha-web-6c477cfc9-6ppks Created container redis 10m Normal Started pod/gha-web-6c477cfc9-6ppks Started container redis
Bonjour, la modification doit être défini dans la déclaration du l'instance. Sinon l'opérateur va remettre la config initiale.
Envoyé à partir de Outlook pour Androidhttps://aka.ms/AAb9ysg
From: sdadda @.> Sent: Sunday, June 18, 2023 1:25:17 PM To: stephrobert/comment-hugo @.> Cc: Stéphane ROBERT @.>; Mention @.> Subject: Re: [stephrobert/comment-hugo] https://blog.stephane-robert.info/post/ansible-awx-operator-installation-kubernetes/ (Issue #17)
Bonjour Stephane, D'abord, Merci bcp pour le blog. j'ai bien install' awx operator sur K8S, et j'ai pu l'upgradé de la version 18 vers 22.3.0. Mais j'ai une question pour augmenter le replicas de mon pod task ou web. dans la doc il parle d'ajouter le field task_replicas ou web_replicas, vue que je ne veux increaser que le task, j'ai mis le task_replicas à 2. Quand j'ai déployé je vois que le nombre de replicas 2, après un petit moment, il remet les replicas à 1 sans aucune intevention de ma part. avez vous svp une idée concernant ce sujet de replicas: NAME READY STATUS RESTARTS AGE awx-operator-controller-manager-5c95c6ff46-b2cx5 2/2 Running 0 8m45s gha-task-7f4bcf8fb5-t8pp5 0/4 PodInitializing 0 19s gha-task-7f4bcf8fb5-znnsj 4/4 Running 0 6m40s gha-web-6c477cfc9-6ppks 3/3 Running 0 4m57s
10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Successfully pulled image "quay.io/ansible/awx:22.3.0" in 1m4.99258301s 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-task 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-task 10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Container image "quay.io/ansible/awx-ee:latest" already present on machine 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-ee 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-ee 10m Normal Pulled pod/gha-task-7f4bcf8fb5-znnsj Container image "quay.io/ansible/awx:22.3.0" already present on machine 10m Normal Created pod/gha-task-7f4bcf8fb5-znnsj Created container gha-rsyslog 10m Normal Started pod/gha-task-7f4bcf8fb5-znnsj Started container gha-rsyslog 11m Normal SuccessfulCreate replicaset/gha-task-7f4bcf8fb5 Created pod: gha-task-7f4bcf8fb5-znnsj 5m30s Normal SuccessfulCreate replicaset/gha-task-7f4bcf8fb5 Created pod: gha-task-7f4bcf8fb5-t8pp5 57s Normal SuccessfulDelete replicaset/gha-task-7f4bcf8fb5 Deleted pod: gha-task-7f4bcf8fb5-t8pp5 11m Normal ScalingReplicaSet deployment/gha-task Scaled up replica set gha-task-7f4bcf8fb5 to 1 5m30s Normal ScalingReplicaSet deployment/gha-task Scaled up replica set gha-task-7f4bcf8fb5 to 2 57s Normal ScalingReplicaSet deployment/gha-task Scaled down replica set gha-task-7f4bcf8fb5 to 1 10m Normal Scheduled pod/gha-web-6c477cfc9-6ppks Successfully assigned gha-awx/gha-web-6c477cfc9-6ppks to dtcodevwrk691 10m Normal Pulled pod/gha-web-6c477cfc9-6ppks Container image "docker.io/redis:7" already present on machine 10m Normal Created pod/gha-web-6c477cfc9-6ppks Created container redis 10m Normal Started pod/gha-web-6c477cfc9-6ppks Started container redis
— Reply to this email directly, view it on GitHubhttps://github.com/stephrobert/comment-hugo/issues/17#issuecomment-1596109510, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAFGOPAS4ATRTXTS3LFLKNLXL3QR3ANCNFSM5QBKISNA. You are receiving this because you were mentioned.Message ID: @.***>
Merci infiniment stephrobert pour votre réponse rapide. avez vous un exemple svp: comment peut-je ajouter la modif la déclaration du l'instance pour scaler uniquement le pod task
Pas sous la main car je suis en déplacement. Mais dans le code de l'opérateur il y a des exemples
Envoyé à partir de Outlook pour Androidhttps://aka.ms/AAb9ysg
From: sdadda @.> Sent: Sunday, June 18, 2023 2:08:33 PM To: stephrobert/comment-hugo @.> Cc: Stéphane ROBERT @.>; Mention @.> Subject: Re: [stephrobert/comment-hugo] https://blog.stephane-robert.info/post/ansible-awx-operator-installation-kubernetes/ (Issue #17)
Merci infiniment stephrobert pour votre réponse rapide. avez vous un exemple svp: comment peut-je ajouter la modif la déclaration du l'instance pour scaler uniquement le pod task
— Reply to this email directly, view it on GitHubhttps://github.com/stephrobert/comment-hugo/issues/17#issuecomment-1596122877, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAFGOPFJ3GH3NHHKXNSLC4DXL3VUDANCNFSM5QBKISNA. You are receiving this because you were mentioned.Message ID: @.***>
j'ai essayé de scaler le deploy awx-operator-controller-manager, mais ça n'a aucun effect sur les replicas des pods task ni de web: NAME READY STATUS RESTARTS AGE awx-operator-controller-manager-5c95c6ff46-b2cx5 2/2 Running 0 70m awx-operator-controller-manager-5c95c6ff46-gc6tv 2/2 Running 0 55m gha-task-7f4bcf8fb5-znnsj 4/4 Running 0 68m gha-web-6c477cfc9-6ppks 3/3 Running 0 66m
ainsi ce deployment: awx-operator-controller-manager n'a pas de field qui designe le deploy task
Le template qui prend en charge cette spec https://github.com/ansible/awx-operator/blob/devel/roles/installer/templates/deployments/task.yaml.j2
Si tu veux t'en sortir faut comprendre comment sont construits les opérateurs realises avec Ansible. https://blog.stephane-robert.info/post/ansible-kubernetes-operator/ A partir de là tu pourras trouver comment déclarer correctement tes replicas.
Bonjour Stéphane,
Je ne comprends pas bien pourquoi tu spécifies ces lignes apres le "make deploy" avec notamment la version 0.14.0 et ensuite le build config/default:
cd config/manager && /home/user/awx-operator/bin/kustomize edit set image controller=quay.io/ansible/awx-operator:0.14.0 /home/user/awx-operator/bin/kustomize build config/default | kubectl apply -f -
Des le make deploy du début, les ressources sont créées et les lignes d'apres me renvoient du unchanged.
Merci
Ansible - Installer AWX sur un cluster Kubernetes
Awx Operator permet d'installer Ansible AWX sur un Cluster Kubernetes
https://blog.stephane-robert.info/post/ansible-awx-operator-installation-kubernetes/