Awx-operator: Version der Ausführungsumgebung kann nicht aktualisiert werden

Erstellt am 29. Apr. 2021  ·  8Kommentare  ·  Quelle: ansible/awx-operator

Ich habe das:

  tower_ee_images:
  - image: my-env:v0.1.1
    name: my-env

Ich wollte auf v0.1.2 aktualisieren, also habe ich das Image aktualisiert. Der Operator hat sich verstanden, Pods wurden neu gestartet, aber wenn ich in AWX -> Execution Environments gehe, sehe ich immer noch die "my-env" -Umgebung mit dem v0.1.1-Tag

bug needs_review

Hilfreichster Kommentar

Schließung als PR https://github.com/ansible/awx/pull/10206 wurde auf AWX zusammengeführt

Es wird in der nächsten AWX-Version enthalten sein.

Alle 8 Kommentare

@daenney könnten Sie bitte einige Befehlsausgaben aus den von Ihnen durchgeführten Schritten erläutern und bereitstellen? Interessiert an einem Muster, um das gleiche Problem zu reproduzieren. Vielen Dank!

Ich habe Folgendes getan: kubectl edit awx/awx und die Version des image Schlüssels geändert, ohne den name zu ändern. Ich wartete, bis der Operator einschaltete und die neuen AWX-Pods gestartet wurden. Danach navigierte ich zu den Ausführungsumgebungen in der AWX-Benutzeroberfläche und bemerkte, dass die EE immer noch auf das alte Image-Tag zeigte.

@daenney Ich habe es gerade auf dem neuesten devel getestet und für mich gearbeitet.

# kubectl edit awx awx-demo-devel
....
spec:
  tower_ee_images:
    - image: registry.tatu.home/ansible/awx-ee:0.1.0
      name: ee-010
    - image: registry.tatu.home/ansible/awx-ee:0.2.0
      name: ee-020

Das war dann das Ergebnis:

image

Bitte versuchen Sie es erneut mit dem neuesten devel das für Sie funktionieren sollte. Bitte teilen Sie uns die Ergebnisse mit.

Haben Sie versucht, einen direkt zu aktualisieren? Ändern Sie zum Beispiel das Tag, auf das ee-020 zeigt, in awx-ee:0.2.1`? Im Moment schlägt Ihre Konfiguration vor, dass Sie 2 Ausführungsumgebungen haben. Das funktioniert bei mir auch. Das Problem, das ich habe, besteht darin, einen generischen Namen ohne Versionskennung zu verwenden und nur das Image-Tag zu aktualisieren (damit ich nicht jedes Mal um AWX herumgehen und die verwendete Ausführungsumgebung aktualisieren muss).

Stellen Sie sich vor, Sie haben dies zuerst:

spec:
  tower_ee_images:
    - image: registry.tatu.home/ansible/awx-ee:0.1.0
      name: My Custom Execution Environment

Und dann aktualisieren Sie es so:

spec:
  tower_ee_images:
    - image: registry.tatu.home/ansible/awx-ee:0.2.0
      name: My Custom Execution Environment

Das scheint bei mir nicht zu funktionieren. Ich werde es mit der Entwicklung versuchen.

Vor:
image

        image: registry.tatu.home/ansible/awx-ee:0.1.0
        imagePullPolicy: IfNotPresent
        name: awx-devel-ee-ee

Dann geändert, neue Bereitstellung ausgerollt

awx-devel-ee-c5f7b4479-jd25d                               0/4     Pending     0          0s
awx-devel-ee-c5f7b4479-jd25d                               0/4     Pending     0          0s
awx-devel-ee-c5f7b4479-jd25d                               0/4     ContainerCreating   0          0s
awx-devel-ee-c5f7b4479-jd25d                               4/4     Running             0          2s
awx-devel-ee-66588d9f74-wwm8w                              4/4     Terminating         0          18m
awx-devel-ee-66588d9f74-wwm8w                              0/4     Terminating         0          18m
awx-devel-ee-66588d9f74-wwm8w                              0/4     Terminating         0          19m
awx-devel-ee-66588d9f74-wwm8w                              0/4     Terminating         0          19m

-- deployment got updated
- args:
        - receptor
        - --config
        - /etc/receptor.conf
        image: registry.tatu.home/ansible/awx-ee:0.2.0
        imagePullPolicy: IfNotPresent
        name: awx-devel-ee-ee

image

Ein Blick in die Datenbank zeigt immer noch auf die alte:

awx=# select * from main_executionenvironment;
 id |    created    |   modified    | description |     image      | managed_by_tower | created_by_id | credential_id | modified_by_id | organization_id |      name      | pull 
----+---------------+---------------+-------------+----------------+------------------+---------------+---------------+----------------+-----------------+----------------+------
  1 | 2021-05-11 15.| 2021-05-11 15.|             | registry.tatu..| t                |             1 |               |              1 |                 | My Custom Exec.| 
    |.:24:02.674302.|.:24:02.674327.|             |.home/ansible/a.|                  |               |               |                |                 |.ution Environm.| 
    |.+00           |.+00           |             |.wx-ee:0.1.0    |                  |               |               |                |                 |.ent            | 
(1 row)

Wenn Sie dann DEFAILT_EXECUTION_ENVIRONMENTS überprüfen, wurde es wie erwartet aktualisiert:

kubectl iexec awx-devel-ee /bin/bash                                                                                                                                 11:50:05
Namespace: default | Pod: ✔ awx-devel-ee-c5f7b4479-jd25d
Container: ✔ awx-devel-ee-web
bash-4.4$ cat /etc/tower/conf.d/execution_environments.py 
DEFAULT_EXECUTION_ENVIRONMENTS = [
    {'name': 'My Custom Execution Environment' , 'image': 'registry.tatu.home/ansible/awx-ee:0.2.0'},
]

Das Problem liegt also wirklich bei https://github.com/ansible/awx/blob/devel/awx/main/management/commands/create_preload_data.py#L71 -L76, was erfordert, dass der Name anders ist, damit die Daten aktualisiert werden , andernfalls wird davon ausgegangen, dass das Objekt bereits gespeichert ist.

                for ee in reversed(settings.DEFAULT_EXECUTION_ENVIRONMENTS):
                    _, created = ExecutionEnvironment.objects.get_or_create(name=ee['name'], defaults={'image': ee['image'], 'managed_by_tower': True})

                if created:
                    changed = True
                    print('Default Execution Environment(s) registered.')

Ist es etwas, das wir @shanemcd @matburt aktualisieren

In diesem Fall sollten wir in Erwägung ziehen, den Bildwert im AWX-Code zu aktualisieren, auf den Sie gerade verlinkt haben.

In diesem Fall sollten wir in Erwägung ziehen, den Bildwert im AWX-Code zu aktualisieren, auf den Sie gerade verlinkt haben.

Ich werde dann an einem Patch arbeiten. Vielen Dank!

Schließung als PR https://github.com/ansible/awx/pull/10206 wurde auf AWX zusammengeführt

Es wird in der nächsten AWX-Version enthalten sein.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen