diff --git a/.github-old/ISSUE_TEMPLATE/bug_report.yml b/.github-old/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 539ec115..00000000 --- a/.github-old/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,125 +0,0 @@ ---- -name: Bug Report -description: "🐞 Create a report to help us improve" -body: - - type: markdown - attributes: - value: | - Bug Report issues are for **concrete, actionable bugs** only. - For debugging help or technical support, please see the [Get Involved section of our README](https://github.com/ansible/awx-operator#get-involved) - - - type: checkboxes - id: terms - attributes: - label: Please confirm the following - options: - - label: I agree to follow this project's [code of conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html). - required: true - - label: I have checked the [current issues](https://github.com/ansible/awx-operator/issues) for duplicates. - required: true - - label: I understand that the AWX Operator is open source software provided for free and that I might not receive a timely response. - required: true - - - type: textarea - id: summary - attributes: - label: Bug Summary - description: Briefly describe the problem. - validations: - required: false - - - type: input - id: awx-operator-version - attributes: - label: AWX Operator version - description: What version of the AWX Operator are you running? - validations: - required: true - - - type: input - id: awx-version - attributes: - label: AWX version - description: What version of AWX are you running? - validations: - required: true - - - type: dropdown - id: platform - attributes: - label: Kubernetes platform - description: What platform did you install the Operator in? - multiple: false - options: - - kubernetes - - minikube - - openshift - - minishift - - docker development environment - - other (please specify in additional information) - validations: - required: true - - - type: input - id: kube-version - attributes: - label: Kubernetes/Platform version - description: What version of your platform/kuberneties are you using? - validations: - required: true - - - type: dropdown - id: modified-architecture - attributes: - label: Modifications - description: >- - Have you modified the installation, deployment topology, or container images in any way? If yes, please - explain in the "additional information" field at the bottom of the form. - multiple: false - options: - - "no" - - "yes" - validations: - required: true - - - type: textarea - id: steps-to-reproduce - attributes: - label: Steps to reproduce - description: >- - Starting from a new installation of the system, describe exactly how a developer or quality engineer can reproduce the bug - on infrastructure that isn't yours. Include any and all resources created, input values, test users, roles assigned, playbooks used, etc. - validations: - required: true - - - type: textarea - id: expected-results - attributes: - label: Expected results - description: What did you expect to happpen when running the steps above? - validations: - required: true - - - type: textarea - id: actual-results - attributes: - label: Actual results - description: What actually happened? - validations: - required: true - - - type: textarea - id: additional-information - attributes: - label: Additional information - description: Include any relevant log output, links to sosreport, database dumps, screenshots, AWX spec yaml, or other information. - validations: - required: false - - - type: textarea - id: operator-logs - attributes: - label: Operator Logs - description: Include any relevant logs generated by the operator. - validations: - required: false diff --git a/.github-old/ISSUE_TEMPLATE/config.yml b/.github-old/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 73e3b11f..00000000 --- a/.github-old/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -blank_issues_enabled: false -contact_links: - - name: For debugging help or technical support - url: https://github.com/ansible/awx-operator#get-involved - about: For general debugging or technical support please see the Get Involved section of our readme. - - name: 📝 Ansible Code of Conduct - url: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_template_chooser - about: AWX uses the Ansible Code of Conduct; ❤ Be nice to other members of the community. ☮ Behave. - - name: 💼 For Enterprise - url: https://www.ansible.com/products/engine?utm_medium=github&utm_source=issue_template_chooser - about: Red Hat offers support for the Ansible Automation Platform diff --git a/.github-old/ISSUE_TEMPLATE/feature_request.yml b/.github-old/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 36ca14be..00000000 --- a/.github-old/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: ✨ Feature request -description: Suggest an idea for this project -body: - - type: markdown - attributes: - value: | - Feature Request issues are for **feature requests** only. - For debugging help or technical support, please see the [Get Involved section of our README](https://github.com/ansible/awx-operator#get-involved) - - - type: checkboxes - id: terms - attributes: - label: Please confirm the following - options: - - label: I agree to follow this project's [code of conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html). - required: true - - label: I have checked the [current issues](https://github.com/ansible/awx-operator/issues) for duplicates. - required: true - - label: I understand that AWX Operator is open source software provided for free and that I might not receive a timely response. - required: true - - - type: textarea - id: summary - attributes: - label: Feature Summary - description: Briefly describe the desired enhancement. - validations: - required: true diff --git a/.github-old/PULL_REQUEST_TEMPLATE.md b/.github-old/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 2495a10f..00000000 --- a/.github-old/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,26 +0,0 @@ -##### SUMMARY - - - - -##### ISSUE TYPE - - - Breaking Change - - New or Enhanced Feature - - Bug, Docs Fix or other nominal change - -##### ADDITIONAL INFORMATION - - - -``` - -``` diff --git a/.github-old/issue_labeler.yml b/.github-old/issue_labeler.yml deleted file mode 100644 index f499f40a..00000000 --- a/.github-old/issue_labeler.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -needs_triage: - - '.*' diff --git a/.github-old/workflows/ci.yaml b/.github-old/workflows/ci.yaml deleted file mode 100644 index 90f7cfd5..00000000 --- a/.github-old/workflows/ci.yaml +++ /dev/null @@ -1,112 +0,0 @@ ---- - -name: CI - -on: - pull_request: - push: - -jobs: - molecule: - runs-on: ubuntu-latest - name: molecule - strategy: - matrix: - ansible_args: - - --skip-tags=replicas - - -t replicas - env: - DOCKER_API_VERSION: "1.41" - DEBUG_OUTPUT_DIR: /tmp/awx_operator_molecule_test - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-python@v4 - with: - python-version: "3.8" - - - name: Install Dependencies - run: | - pip install -r molecule/requirements.txt - - - name: Install Collections - run: | - ansible-galaxy collection install -r molecule/requirements.yml - - - name: Run Molecule - env: - MOLECULE_VERBOSITY: 3 - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' - STORE_DEBUG_OUTPUT: true - run: | - sudo rm -f $(which kustomize) - make kustomize - KUSTOMIZE_PATH=$(readlink -f bin/kustomize) molecule test -s kind -- ${{ matrix.ansible_args }} - - - name: Upload artifacts for failed tests if Run Molecule fails - if: failure() - uses: actions/upload-artifact@v2 - with: - name: awx_operator_molecule_test - path: ${{ env.DEBUG_OUTPUT_DIR }} - helm: - runs-on: ubuntu-latest - name: helm - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Create k8s Kind Cluster - uses: helm/kind-action@v1.8.0 - - - name: Build operator image and load into kind - run: | - IMG=awx-operator-ci make docker-build - kind load docker-image --name chart-testing awx-operator-ci - - - name: Patch pull policy for tests - run: | - kustomize edit add patch --path ../testing/pull_policy/Never.yaml - working-directory: config/default - - - name: Build and lint helm chart - run: | - IMG=awx-operator-ci make helm-chart - helm lint ./charts/awx-operator - - - name: Install kubeval - run: | - mkdir tmp && cd tmp - wget https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz - tar xf kubeval-linux-amd64.tar.gz - sudo cp kubeval /usr/local/bin - working-directory: ./charts - - - name: Run kubeval - run: | - helm template -n awx awx-operator > tmp/test.yaml - kubeval --strict --force-color --ignore-missing-schemas tmp/test.yaml - working-directory: ./charts - - - name: Install helm chart - run: | - helm install --wait my-awx-operator --namespace awx --create-namespace ./charts/awx-operator - no-log: - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v3 - - - name: Check no_log statements - run: | - set +e - no_log=$(grep -nr ' no_log:' roles | grep -v '"{{ no_log }}"') - if [ -n "${no_log}" ]; then - echo 'Please update the following no_log statement(s) with the "{{ no_log }}" value' - echo "${no_log}" - exit 1 - fi - nox-sessions: - uses: ./.github/workflows/reusable-nox.yml diff --git a/.github-old/workflows/devel.yaml b/.github-old/workflows/devel.yaml deleted file mode 100644 index ced9d909..00000000 --- a/.github-old/workflows/devel.yaml +++ /dev/null @@ -1,48 +0,0 @@ ---- - -name: Devel - -on: - push: - branches: [devel] - -jobs: - release: - runs-on: ubuntu-latest - name: Push devel image - steps: - - uses: actions/checkout@v3 - - - name: Fail if QUAY_REGISTRY not set - run: | - if [[ -z "${{ vars.QUAY_REGISTRY }}" ]]; then - echo "QUAY_REGISTRY not set. Please set QUAY_REGISTRY in variable GitHub Actions variables." - exit 1 - fi - - - name: Log into registry ghcr.io - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - - name: Log into registry quay.io - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 - with: - registry: ${{ vars.QUAY_REGISTRY }} - username: ${{ secrets.QUAY_USER }} - password: ${{ secrets.QUAY_TOKEN }} - - - - name: Build and Store Image @ghcr - run: | - IMG=ghcr.io/${{ github.repository }}:${{ github.sha }} make docker-buildx - - - - name: Publish Image to quay.io - run: | - docker buildx imagetools create \ - ghcr.io/${{ github.repository }}:${{ github.sha }} \ - --tag ${{ vars.QUAY_REGISTRY }}/awx-operator:devel diff --git a/.github-old/workflows/feature.yml b/.github-old/workflows/feature.yml deleted file mode 100644 index 7198f2eb..00000000 --- a/.github-old/workflows/feature.yml +++ /dev/null @@ -1,56 +0,0 @@ ---- - -name: Feature Branch Image Build and Push - -on: - push: - branches: [feature_*] - -jobs: - release: - runs-on: ubuntu-latest - name: Push devel image - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # needed so that git describe --tag works - - - name: Set VERSION - run: | - echo "VERSION=$(git describe --tags)" >>${GITHUB_ENV} - - - name: Set lower case owner name - run: | - echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV} - env: - OWNER: '${{ github.repository_owner }}' - - - name: Set IMAGE_TAG_BASE - run: | - echo "IMAGE_TAG_BASE=ghcr.io/${OWNER_LC}/awx-operator" >>${GITHUB_ENV} - - - name: Log in to registry - run: | - echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - - name: Build and Push awx-operator Image - run: | - make docker-build docker-push - docker tag ${IMAGE_TAG_BASE}:${VERSION} ${IMAGE_TAG_BASE}:${GITHUB_REF##*/} - docker push ${IMAGE_TAG_BASE}:${GITHUB_REF##*/} - - - name: Build bundle manifests - run: | - make bundle - - - name: Build and Push awx-operator Bundle - run: | - make bundle-build bundle-push - docker tag ${IMAGE_TAG_BASE}-bundle:v${VERSION} ${IMAGE_TAG_BASE}-bundle:${GITHUB_REF##*/} - docker push ${IMAGE_TAG_BASE}-bundle:${GITHUB_REF##*/} - - - name: Build and Push awx-operator Catalog - run: | - make catalog-build catalog-push - docker tag ${IMAGE_TAG_BASE}-catalog:v${VERSION} ${IMAGE_TAG_BASE}-catalog:${GITHUB_REF##*/} - docker push ${IMAGE_TAG_BASE}-catalog:${GITHUB_REF##*/} diff --git a/.github-old/workflows/label_issue.yml b/.github-old/workflows/label_issue.yml deleted file mode 100644 index d5c52433..00000000 --- a/.github-old/workflows/label_issue.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -name: Label Issues - -on: - issues: - types: - - opened - - reopened - -jobs: - triage: - runs-on: ubuntu-latest - name: Label - - steps: - - name: Label Issue - Needs Triage - uses: github/issue-labeler@v2.4.1 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - not-before: 2021-12-07T07:00:00Z - configuration-path: .github/issue_labeler.yml - enable-versioned-regex: 0 - if: github.event_name == 'issues' - - community: - runs-on: ubuntu-latest - name: Label Issue - Community - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - - name: Install python requests - run: pip install requests - - name: Check if user is a member of Ansible org - uses: jannekem/run-python-script-action@v1 - id: check_user - with: - script: | - import requests - headers = {'Accept': 'application/vnd.github+json', 'Authorization': 'token ${{ secrets.GITHUB_TOKEN }}'} - response = requests.get('${{ fromJson(toJson(github.event.issue.user.url)) }}/orgs?per_page=100', headers=headers) - is_member = False - for org in response.json(): - if org['login'] == 'ansible': - is_member = True - if is_member: - print("User is member") - else: - print("User is community") - - name: Add community label if not a member - if: contains(steps.check_user.outputs.stdout, 'community') - uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 - with: - add-labels: "community" - repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github-old/workflows/label_pr.yml b/.github-old/workflows/label_pr.yml deleted file mode 100644 index e1db0aed..00000000 --- a/.github-old/workflows/label_pr.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Label PR - -on: - pull_request_target: - types: - - opened - - reopened - - synchronize - -jobs: - community: - runs-on: ubuntu-latest - name: Label PR - Community - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - - name: Install python requests - run: pip install requests - - name: Check if user is a member of Ansible org - uses: jannekem/run-python-script-action@v1 - id: check_user - with: - script: | - import requests - headers = {'Accept': 'application/vnd.github+json', 'Authorization': 'token ${{ secrets.GITHUB_TOKEN }}'} - response = requests.get('${{ fromJson(toJson(github.event.pull_request.user.url)) }}/orgs?per_page=100', headers=headers) - is_member = False - for org in response.json(): - if org['login'] == 'ansible': - is_member = True - if is_member: - print("User is member") - else: - print("User is community") - - name: Add community label if not a member - if: contains(steps.check_user.outputs.stdout, 'community') - uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 - with: - add-labels: "community" - repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github-old/workflows/pr_body_check.yml b/.github-old/workflows/pr_body_check.yml deleted file mode 100644 index 7ddcabd3..00000000 --- a/.github-old/workflows/pr_body_check.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -name: PR Check -env: - BRANCH: ${{ github.base_ref || 'devel' }} -on: - pull_request: - types: [opened, edited, reopened, synchronize] -jobs: - pr-check: - name: Scan PR description for semantic versioning keywords - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - steps: - - name: Check for each of the lines - env: - PR_BODY: ${{ github.event.pull_request.body }} - run: | - echo "$PR_BODY" | grep "Bug, Docs Fix or other nominal change" > Z - echo "$PR_BODY" | grep "New or Enhanced Feature" > Y - echo "$PR_BODY" | grep "Breaking Change" > X - exit 0 - # We exit 0 and set the shell to prevent the returns from the greps from failing this step - # See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference - shell: bash {0} - - - name: Check for exactly one item - run: | - if [ $(cat X Y Z | wc -l) != 1 ] ; then - echo "The PR body must contain exactly one of [ 'Bug, Docs Fix or other nominal change', 'New or Enhanced Feature', 'Breaking Change' ]" - echo "We counted $(cat X Y Z | wc -l)" - echo "See the default PR body for examples" - exit 255; - else - exit 0; - fi diff --git a/.github-old/workflows/publish-helm.yml b/.github-old/workflows/publish-helm.yml deleted file mode 100644 index 12c99077..00000000 --- a/.github-old/workflows/publish-helm.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Re-publish helm chart -on: - workflow_dispatch: - inputs: - tag: - description: 'Release tag' - required: true - type: string -jobs: - promote: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - depth: 0 - - - name: Release Helm chart - run: | - ansible-playbook ansible/helm-release.yml -v \ - -e operator_image=quay.io/${{ github.repository }} \ - -e chart_owner=${{ github.repository_owner }} \ - -e tag=${{ inputs.tag }} \ - -e gh_token=${{ secrets.GITHUB_TOKEN }} \ - -e gh_user=${{ github.actor }} \ - -e repo_type=https diff --git a/.github-old/workflows/publish-operator-hub.yaml b/.github-old/workflows/publish-operator-hub.yaml deleted file mode 100644 index 822d00f5..00000000 --- a/.github-old/workflows/publish-operator-hub.yaml +++ /dev/null @@ -1,86 +0,0 @@ -name: Publish AWX Operator on operator-hub -on: - release: - types: [published] - workflow_dispatch: - inputs: - tag_name: - description: 'Name for the tag of the release.' - required: true - operator_hub_fork: - description: 'Fork of operator-hub where the PR will be created from. default: awx-auto' - required: true - default: 'awx-auto' - image_registry: - description: 'Image registry where the image is published to. default: quay.io' - required: true - default: 'quay.io' - image_registry_organization: - description: 'Image registry organization where the image is published to. default: ansible' - required: true - default: 'ansible' - community_operator_github_org: - description: 'Github organization for community-opeartor project. default: k8s-operatorhub' - required: true - default: 'k8s-operatorhub' - community_operator_prod_github_org: - description: 'GitHub organization for community-operator-prod project. default: redhat-openshift-ecosystem' - required: true - default: 'redhat-openshift-ecosystem' -jobs: - promote: - runs-on: ubuntu-latest - steps: - - name: Set GITHUB_ENV from workflow_dispatch event - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - echo "VERSION=${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV - echo "IMAGE_REGISTRY=${{ github.event.inputs.image_registry }}" >> $GITHUB_ENV - echo "IMAGE_REGISTRY_ORGANIZATION=${{ github.event.inputs.image_registry_organization }}" >> $GITHUB_ENV - echo "COMMUNITY_OPERATOR_GITHUB_ORG=${{ github.event.inputs.community_operator_github_org }}" >> $GITHUB_ENV - echo "COMMUNITY_OPERATOR_PROD_GITHUB_ORG=${{ github.event.inputs.community_operator_prod_github_org }}" >> $GITHUB_ENV - - - name: Set GITHUB_ENV for release event - if: ${{ github.event_name == 'release' }} - run: | - echo "VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV - echo "IMAGE_REGISTRY=quay.io" >> $GITHUB_ENV - echo "IMAGE_REGISTRY_ORGANIZATION=ansible" >> $GITHUB_ENV - echo "COMMUNITY_OPERATOR_GITHUB_ORG=k8s-operatorhub" >> $GITHUB_ENV - echo "COMMUNITY_OPERATOR_PROD_GITHUB_ORG=redhat-openshift-ecosystem" >> $GITHUB_ENV - - - name: Log in to image registry - run: | - echo ${{ secrets.QUAY_TOKEN }} | docker login ${{ env.IMAGE_REGISTRY }} -u ${{ secrets.QUAY_USER }} --password-stdin - - - name: Checkout awx-operator at workflow branch - uses: actions/checkout@v4 - with: - path: awx-operator - - - name: Checkout awx-opearator at ${{ env.VERSION }} - uses: actions/checkout@v4 - with: - fetch-tags: true - ref: ${{ env.VERSION }} - path: awx-operator-${{ env.VERSION }} - fetch-depth: 0 # fetch all history so that git describe works - - - name: Copy scripts to awx-operator-${{ env.VERSION }} - run: | - cp -f \ - awx-operator/hack/publish-to-operator-hub.sh \ - awx-operator-${{ env.VERSION }}/hack/publish-to-operator-hub.sh - cp -f \ - awx-operator/Makefile \ - awx-operator-${{ env.VERSION }}/Makefile - - - name: Build and publish bundle to operator-hub - working-directory: awx-operator-${{ env.VERSION }} - env: - IMG_REPOSITORY: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_REGISTRY_ORGANIZATION }} - GITHUB_TOKEN: ${{ secrets.AWX_AUTO_GITHUB_TOKEN }} - run: | - git config --global user.email "awx-automation@redhat.com" - git config --global user.name "AWX Automation" - ./hack/publish-to-operator-hub.sh diff --git a/.github-old/workflows/reusable-nox.yml b/.github-old/workflows/reusable-nox.yml deleted file mode 100644 index 595e1d25..00000000 --- a/.github-old/workflows/reusable-nox.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: nox - -"on": - workflow_call: - -jobs: - nox: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - session: build - python-versions: "3.11" - name: "Run nox ${{ matrix.session }} session" - steps: - - name: Check out repo - uses: actions/checkout@v4 - - name: Setup nox - uses: wntrblm/nox@2024.04.15 - with: - python-versions: "${{ matrix.python-versions }}" - - name: "Run nox -s ${{ matrix.session }}" - run: | - nox -s "${{ matrix.session }}"