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

Modify Directory structure to reflect shareable components and dependencies #532

Closed
shawngib opened this issue Nov 17, 2021 · 5 comments
Closed
Labels
bicep Related to Bicep code

Comments

@shawngib
Copy link
Member

Benefit/Result/Outcome

Current structure has all 'modules' and core resource files located in single directory. Recommendation would be to place core modules (those that represent the basic Azure component like resource group and network into a 'modules/core' folder and specific MLZ opiniated modules in a 'modules/mlz' folder allowing for add on's and extension builders to use either the core module or the modified opiniated module where needed while also allowing them to add 'core' modules and a folder representing the add on/extension for their opiniated version.

Acceptance Criteria

All modules in easily understandable directory structure and extensible when needed without need to modify core, or MLZ opiniated versions. Example:
image

@shawngib shawngib added needs triage bicep Related to Bicep code labels Nov 17, 2021
@glennmusa
Copy link
Contributor

glennmusa commented Nov 18, 2021

I see what you mean. "This hub network is what makes MLZ" is different than "this is a generic reusable virtual network".

I see the benefit, but do think this could wait and is lower priority then some of our other current needs, though.

My two cents, if I were to layout "what is MLZ" and "what is generic and reusable" it looks like this:

missionlz
└── src
    └── bicep
        ├── mlz
        │   ├── addons
        │   │   ├── appService
        │   │   ├── newWorkload
        │   │   └── remoteAccess
        │   ├── core
        │   │   ├── centralLogging.bicep
        │   │   ├── hubNetwork.bicep
        │   │   ├── policies
        │   │   │   ├── CMMC.json
        │   │   │   ├── IL5.json
        │   │   │   └── NIST80053.json
        │   │   ├── policy.bicep
        │   │   └── spokeNetwork.bicep
        │   ├── main.bicep
        │   └── main.json
        └── modules
            ├── bastionHost.bicep
            ├── firewall.bicep
            ├── resourceGroup.bicep
            ├── subnet.bicep
            └── virtualNetwork.bicep

@glennmusa glennmusa self-assigned this Nov 18, 2021
@shawngib
Copy link
Member Author

Seems visually impactful and future code writing impactful but in reality its low effort and light impact in potential regressions. The goal is allow for an understanding of creating additional LZ's (extensions), modifying LZ, adding to (add-ons) and potentially adding core features. In @glennmusa 's example above, for instance, almost any and all Azure resources can be easily represented in 'modules' directory and the opinions live in MLZ\core modules that call those generic modules. Only change I would suggest is instead of 'policies' living in the root, since they are MLZ core specific I would suggest an 'artifacts' directory in core and move the policy folder there. I foresee in the near future needing scripts also as a directory in artifacts folder. This can also be a place for add-ons/apps to be created that customers can use to upload artifacts to a storage account that is required in the overall workload or MLZ proper, like PowerShell az modules, az cli and other requirements.

@glennmusa glennmusa removed their assignment Nov 18, 2021
@glennmusa
Copy link
Contributor

glennmusa commented Nov 18, 2021

Removed my assignment and any progress to any project, was experimenting with the new GitHub Projects Beta. Like your idea @shawngib that policy as it's defined today is MLZ-specific and updated the tree with that.

@brooke-hamilton
Copy link
Contributor

The next step is to analyze and implement this after #543 and #544

@brooke-hamilton
Copy link
Contributor

Closing - created #561 for this work.

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

No branches or pull requests

3 participants