ansible-community / awx-operator-helm

Helm chart for the AWX operator.
https://ansible-community.github.io/awx-operator-helm/
GNU General Public License v3.0
28 stars 8 forks source link

Private images and confusion difference between repository & Helm chart #27

Open rdvansloten opened 1 week ago

rdvansloten commented 1 week ago

I am attempting to install awx-operator, but I have run into a hurdle. It seems the used images are hardcoded (I used helm pull to get the Chart version 2.19.1) and found no variables for the image field. My cluster does not allow random container registries as a source, so I must be able to import this into my own registry, where it's scanned and vetted for issues, etc. The values file example is like 10 lines, so I don't know what to make of that.

Sure, no problem, I am happy to contribute to projects and fix this missing feature with the images.

However, the more I look into this repo, the more confused I am:

  1. I went to https://ansible-community.github.io/awx-operator-helm/ as listed in the readme, and followed the steps. This gives me 2.19.1 as the latest (and only?) version:
helm search repo awx-operator
NAME                        CHART VERSION   APP VERSION DESCRIPTION
awx-operator/awx-operator   2.19.1          2.19.1      A Helm chart for the AWX Operator

(the same output listed here: https://ansible.readthedocs.io/projects/awx-operator-helm/helm-install-on-existing-cluster.html)

  1. This chart and the awx-operator app has no Release 24.42.0. What's going on here?

  2. The Helm structure when downloading this chart is wildly different from what is represented in this repo:

    .                               extra-list.yaml
    ..                              postgres-config.yaml
    NOTES.txt                           role-awx-operator-awx-manager-role.yaml
    _helpers.tpl                            role-awx-operator-leader-election-role.yaml
    awx-deploy.yaml                         rolebinding-awx-operator-awx-manager-rolebinding.yaml
    clusterrole-awx-operator-metrics-reader.yaml            rolebinding-awx-operator-leader-election-rolebinding.yaml
    clusterrole-awx-operator-proxy-role.yaml            secrets
    clusterrolebinding-awx-operator-proxy-rolebinding.yaml      service-awx-operator-controller-manager-metrics-service.yaml
    configmap-awx-operator-awx-manager-config.yaml          serviceaccount-awx-operator-controller-manager.yaml
    deployment-awx-operator-controller-manager.yaml         storage

I can't find any chart on Ansible/AWX-related GitHub repos that matches this file structure.


So a few questions:

oraNod commented 4 days ago

Hey @rdvansloten Thanks for creating the issue and apologies for the delayed response. I had something written up but I think I got lost in my browser tabs and never hit the comment button.

Let me start by saying that things are still in a bit of a flux state. Not so long ago we separated the helm chart from the awx-operator repo. Full details are available in this forum post: https://forum.ansible.com/t/upcoming-changes-to-awx-operator-installation-methods/7598

I've been working with @miles-w-3 and @schen1 to make a few improvements to the helm chart, which has included fixing ci and figuring out a new versioning scheme. The tag you found, 24.42.0, was created as an experiment while we were working through fixing some broken ci jobs. I've just deleted that tag. Sorry for the confusion. Hopefully that answers question 2.

For question 1, 2.19.1 is the latest and only version right now. Thanks to the work that @miles-w-3 has done we should be able to release a new version of the helm chart following CalVer. That will be separate to the underlying awx-operator version, the appVersion, which will remain at 2.19.1 until there is another AWX Operator release.

For 3, I'm still on the learning path with this helm chart myself. My role here has pretty much been trying to assist community maintainers and keep things moving forward. Your mileage might vary with my responses. That said it seems like a good few of those files are referenced in the Makefile: https://github.com/ansible-community/awx-operator-helm/blob/main/Makefile

For example clusterrole-awx-operator-metrics-reader.yaml is on this line: https://github.com/ansible-community/awx-operator-helm/blob/ad749305af6eb7bf8bb0b2bdb357a84165024e8c/Makefile#L159

I think other files you've mentioned are generated from templates in this directory: https://github.com/ansible-community/awx-operator-helm/tree/main/.helm/starter/templates

In answer to your last question, this is indeed the repo for the awx-operator helm chart. Your contributions are very much welcome and appreciated. Feel free to take a look at some of the open issues and submit a PR: https://github.com/ansible-community/awx-operator-helm/issues

There's also an open PR that you might feel like reviewing and commenting on: https://github.com/ansible-community/awx-operator-helm/pull/20

If you have more questions, do join us on matrix in the awx channel or on the forum. Cheers!

rdvansloten commented 4 days ago

Hi @oraNod, thanks for the reply! I see that in order to run the Makefile, I have to run Python3 to clone the "old" repo: https://github.com/ansible-community/awx-operator-helm/blob/ad749305af6eb7bf8bb0b2bdb357a84165024e8c/clone-awx-operator.py#L17

The makefile this pulls in is also seemingly the only place to change the default images. Therefore it seems I need to commit changes to that repo to get the chart to change. Is this correct? I would make efforts to consolidate the files there into this repo, but I don't know if you guys already have a strategy for doing that.

Below is my search result for the image, only the imported makefile refers to it. The Makefile in this repo has a hard dependency on the other repo:

https://github.com/ansible-community/awx-operator-helm/blob/ad749305af6eb7bf8bb0b2bdb357a84165024e8c/Makefile#L1-L3

Screenshot 2024-11-22 at 00 04 32
schen1 commented 3 days ago

Hi @rdvansloten,

There is already an effort to make it easier for users to specify metadata and specifications (including overwriting the container image) for the operator controller.

As mentioned by @oraNod, the PR from @miles-w-3 should take care of this by simply specifying your container image within the values file.

However, this is not yet merged and not yet released into a public helm chart so feel free to add your comments there to see if it would fit your needs.

Cheers