Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
rdvansloten opened this issue Nov 15, 2024 · 3 comments

Comments

@rdvansloten
Copy link

rdvansloten commented Nov 15, 2024

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:

  • Where are the Releases?
  • Why is there a singular release with a deviant version?
  • Where is the actual repo for awx-operator Helm chart 2.19.1 located and how do I contribute to it?
@oraNod
Copy link
Contributor

oraNod commented Nov 21, 2024

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:

cluster_scoped_files="charts/$(CHART_NAME)/raw-files/clusterrolebinding-awx-operator-proxy-rolebinding.yaml charts/$(CHART_NAME)/raw-files/clusterrole-awx-operator-metrics-reader.yaml charts/$(CHART_NAME)/raw-files/clusterrole-awx-operator-proxy-role.yaml";\

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: #20

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

@rdvansloten
Copy link
Author

rdvansloten commented Nov 21, 2024

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:

DEFAULT_AWX_OPERATOR_REPO = "https://github.com/ansible/awx-operator"

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:

# Include the Makefile from the ansible/awx-operator repository.
# This Makefile is created with the clone-awx-operator.py script.
include Makefile.awx-operator

Screenshot 2024-11-22 at 00 04 32

@schen1
Copy link
Collaborator

schen1 commented Nov 22, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants