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

[FEATURE REQUEST] Project re-structure part 2 #2666

Closed
8 of 13 tasks
seriva opened this issue Oct 6, 2021 · 1 comment
Closed
8 of 13 tasks

[FEATURE REQUEST] Project re-structure part 2 #2666

seriva opened this issue Oct 6, 2021 · 1 comment

Comments

@seriva
Copy link
Collaborator

seriva commented Oct 6, 2021

Is your feature request related to a problem? Please describe.
In our current setup we have a 2 stage build for the Epicli container. The first stage builds a Python package of Epicli which is then installed in the second stage inside the final docker image. This introduces a few issues:

  • Builds of the container take longer.
  • We have some of our code in the /data/ folder which is only needed because of the Python package:
    • Ansible code: /data/common/ansible
    • Spec tests: /data/common/tests
    • Terraform scripts: /data/aws/terraform, /data/azure/terraform
      These locations are not intuitive when developing Epicli.

The Python package was meant to be distributed on the PyPi registry, however because of all the various dependencies we have, we now know this will never be the case.

Describe the solution you'd like

  • Remove the build of the PyPi package and add the needed folders directly to the image inside /epicli
  • Python dependencies can be installed directly using Pip and /.devcontainer/requirements.txt as in the devcontainer
  • Calling epicli as a command can be done using an alias as is done in devcontainer.
  • Restucture the /data folder to make more sense, contant of the folders will remain unchanged:
    • Move current content of /tests/ inside a subfolder /tests/unit and adjust the paths accordingly.
    • Move /data/common/tests content to /tests/spec and adjust the paths accordingly.
    • Move /data/common/ansible content to /ansible and adjust the paths accordingly.
    • Move /data/aws/terraform content to /terraform/aws and adjust the paths accordingly.
    • Move /data/azure/terraform content to /terraform/azure and adjust the paths accordingly.
    • Rename remaining /data folder to /schema is this will only contain defaults and validation files. Then adjust the paths accordingly.

Describe alternatives you've considered
None

Additional context
None


DoD checklist

  • Changelog updated
  • COMPONENTS.md updated / doesn't need to be updated
  • Schema updated / doesn't need to be updated
  • Feature has automated tests
  • Automated tests passed (QA pipelines)
    • apply
    • upgrade
  • Idempotency tested
  • Documentation added / updated / doesn't need to be updated
  • All conversations in PR resolved
  • Solution meets requirements and is done according to design doc
  • Usage compliant with license
  • Backport tasks created / doesn't need to be backported
@przemyslavic
Copy link
Collaborator

✔️ Successfully deployed Ubuntu/RHEL/CentOS clusters with all components enabled in the pipeline. Additionally, unit tests and spec tests were executed. Also tested in devcontainer.

@mkyc mkyc closed this as completed Oct 8, 2021
seriva added a commit that referenced this issue Oct 14, 2021
- Removed legacy code for Epiphany < 0.3.
- Refactored build_saver.py and renamed to build_io.py as we do not only save.
- Updated tests to reflect all changes.
- Also added missing changelogs for #2643, #2666
- Added fixes for #2497 which where outstanding in #2652 and reported in: #2497 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants