confcom: C-WCOW enforcement-point support, Elastic SAN mounts, and package/versioning updates - #10273
Takuro Sato (takuro-sato) wants to merge 23 commits into
Conversation
|
Hi Takuro Sato (@takuro-sato), |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution Takuro Sato (@takuro-sato)! We will review the pull request and get back to you soon. |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
8a44a06 to
f5a1311
Compare
|
confcom |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
Tingmao Wang (micromaomao)
left a comment
There was a problem hiding this comment.
Thanks for taking in the LCOW changes too!
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 Changes recommended
A critical policy deserialization incompatibility and moderate input-validation gaps remain unresolved, alongside documentation and regression-test nits.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR extends az confcom with hcsshim 0.5/C-WCOW policy support, Elastic SAN mounts, Windows VN2 behavior, and packaging updates.
Changes:
- Adds C-WCOW enforcement inputs and policy wiring.
- Adds Elastic SAN handling and Windows platform defaults.
- Updates versions, templates, samples, documentation, tests, and bundled binaries.
Open findings remain: a critical generated-policy/model deserialization incompatibility; moderate validation gaps for mappedDirectories and allowedLogProviders; and nit requests for framework-version documentation, Windows registry_changes assertions, and an Elastic SAN regression test.
File summaries
| File | Summary |
|---|---|
src/confcom/setup.py |
Version and package asset updates. |
src/confcom/samples/vn2/workload_identity/policy.rego |
Regenerated VN2 workload-identity policy sample. |
src/confcom/samples/vn2/workload_identity/containers.inc.rego |
Regenerated VN2 workload-identity container fragment. |
src/confcom/samples/vn2/volume_claim_templates/policy.rego |
Regenerated VN2 volume-claim policy sample. |
src/confcom/samples/vn2/volume_claim_templates/containers.inc.rego |
Regenerated VN2 volume-claim container fragment. |
src/confcom/samples/vn2/special_env_regex/policy.rego |
Regenerated VN2 special-environment policy sample. |
src/confcom/samples/vn2/special_env_regex/containers.inc.rego |
Regenerated VN2 special-environment container fragment. |
src/confcom/samples/vn2/signals/policy.rego |
Regenerated VN2 signals policy sample. |
src/confcom/samples/vn2/signals/containers.inc.rego |
Regenerated VN2 signals container fragment. |
src/confcom/samples/vn2/security_context_merge/policy.rego |
Regenerated VN2 security-context policy sample. |
src/confcom/samples/vn2/security_context_merge/containers.inc.rego |
Regenerated VN2 security-context container fragment. |
src/confcom/samples/vn2/seccomp_profile/policy.rego |
Regenerated VN2 seccomp policy sample. |
src/confcom/samples/vn2/seccomp_profile/containers.inc.rego |
Regenerated VN2 seccomp container fragment. |
src/confcom/samples/vn2/resourcefieldref_env/policy.rego |
Regenerated VN2 resource-field policy sample. |
src/confcom/samples/vn2/resourcefieldref_env/containers.inc.rego |
Regenerated VN2 resource-field container fragment. |
src/confcom/samples/vn2/read_only_mounts/policy.rego |
Regenerated VN2 read-only-mount policy sample. |
src/confcom/samples/vn2/read_only_mounts/containers.inc.rego |
Regenerated VN2 read-only-mount container fragment. |
src/confcom/samples/vn2/privileged_container/policy.rego |
Regenerated VN2 privileged-container policy sample. |
src/confcom/samples/vn2/privileged_container/containers.inc.rego |
Regenerated VN2 privileged-container fragment. |
src/confcom/samples/vn2/multi_container/policy.rego |
Regenerated VN2 multi-container policy sample. |
src/confcom/samples/vn2/multi_container/containers.inc.rego |
Regenerated VN2 multi-container fragment. |
src/confcom/samples/vn2/init_and_lifecycle/policy.rego |
Regenerated VN2 lifecycle policy sample. |
src/confcom/samples/vn2/init_and_lifecycle/containers.inc.rego |
Regenerated VN2 lifecycle container fragment. |
src/confcom/samples/vn2/fieldref_env/policy.rego |
Regenerated VN2 field-reference policy sample. |
src/confcom/samples/vn2/fieldref_env/containers.inc.rego |
Regenerated VN2 field-reference container fragment. |
src/confcom/samples/vn2/configmap_secret_env/policy.rego |
Regenerated VN2 ConfigMap/Secret policy sample. |
src/confcom/samples/vn2/configmap_secret_env/containers.inc.rego |
Regenerated VN2 ConfigMap/Secret container fragment. |
src/confcom/samples/vn2/basic_command_args/policy.rego |
Regenerated VN2 command-argument policy sample. |
src/confcom/samples/vn2/basic_command_args/containers.inc.rego |
Regenerated VN2 command-argument container fragment. |
src/confcom/samples/radius/volumes/aci_container.inc.rego |
Regenerated Radius volume policy fixture. |
src/confcom/samples/radius/sidecar/aci_container.inc.rego |
Regenerated Radius sidecar fixture. |
src/confcom/samples/radius/sidecar/aci_container_2.inc.rego |
Regenerated second Radius sidecar fixture. |
src/confcom/samples/radius/sidecar/aci_container_1.inc.rego |
Regenerated first Radius sidecar fixture. |
src/confcom/samples/radius/exec-probes/aci_container.inc.rego |
Regenerated Radius exec-probe fixture. |
src/confcom/samples/radius/demo/aci_container.inc.rego |
Regenerated Radius demo fixture. |
src/confcom/samples/radius/compute-volumes/aci_container.inc.rego |
Regenerated compute-volume fixture. |
src/confcom/samples/radius/compute-volumes-2/aci_container.inc.rego |
Regenerated second compute-volume fixture. |
src/confcom/samples/radius/compute-basic/aci_container.inc.rego |
Regenerated basic compute fixture. |
src/confcom/samples/radius/command-args/aci_container.inc.rego |
Regenerated command-argument fixture. |
src/confcom/samples/images/minimal/aci_container.inc.rego |
Regenerated minimal image fixture. |
src/confcom/samples/images/environment_variables/aci_container.inc.rego |
Regenerated image environment fixture. |
src/confcom/samples/images/command/aci_container.inc.rego |
Regenerated image command fixture. |
src/confcom/samples/aci/volume_mounts/container1.rego |
Regenerated ACI volume-mount fixture. |
src/confcom/samples/aci/volume_mount_secret/container1.rego |
Regenerated ACI secret-volume fixture. |
src/confcom/samples/aci/variables/policy.rego |
Regenerated ACI variables policy. |
src/confcom/samples/aci/variables/policy_fragment.rego |
Regenerated ACI variables fragment. |
src/confcom/samples/aci/variables/policy_exclude_default_fragment.rego |
Regenerated ACI variables exclusion fragment. |
src/confcom/samples/aci/variables/policy_disable_stdio.rego |
Regenerated ACI variables stdio fragment. |
src/confcom/samples/aci/variables/container1.rego |
Regenerated ACI variables container fixture. |
src/confcom/samples/aci/security_context_run_as_user/policy_exclude_default_fragment.rego |
Regenerated run-as-user policy fragment. |
src/confcom/samples/aci/security_context_run_as_user/container1.rego |
Regenerated run-as-user container fixture. |
src/confcom/samples/aci/security_context_run_as_group/container1.rego |
Regenerated run-as-group container fixture. |
src/confcom/samples/aci/security_context_capabilities_drop/policy.rego |
Regenerated capability-drop policy. |
src/confcom/samples/aci/security_context_capabilities_drop/policy_infrastructure_svn.rego |
Regenerated infrastructure capability policy. |
src/confcom/samples/aci/security_context_capabilities_drop/policy_fragment.rego |
Regenerated capability-drop fragment. |
src/confcom/samples/aci/security_context_capabilities_drop/policy_fragment_plus_infrastructure_svn.rego |
Regenerated combined capability fragment. |
src/confcom/samples/aci/security_context_capabilities_drop/policy_exclude_default_fragment.rego |
Regenerated capability exclusion fragment. |
src/confcom/samples/aci/security_context_capabilities_drop/policy_disable_stdio.rego |
Regenerated capability stdio fragment. |
src/confcom/samples/aci/security_context_capabilities_drop/container1.rego |
Regenerated capability-drop container fixture. |
src/confcom/samples/aci/security_context_capabilities_add/container1.rego |
Regenerated capability-add container fixture. |
src/confcom/samples/aci/security_context_capabilities_add_drop/container1.rego |
Regenerated capability add/drop fixture. |
src/confcom/samples/aci/multi_containers/container2.rego |
Regenerated second multi-container fixture. |
src/confcom/samples/aci/multi_containers/container1.rego |
Regenerated first multi-container fixture. |
src/confcom/samples/aci/multi_container_groups/container1.rego |
Regenerated multi-container-group fixture. |
src/confcom/samples/aci/minimal/policy.rego |
Regenerated minimal ACI policy. |
src/confcom/samples/aci/minimal/policy_fragment.rego |
Regenerated minimal policy fragment. |
src/confcom/samples/aci/minimal/policy_exclude_default_fragment.rego |
Regenerated minimal exclusion fragment. |
src/confcom/samples/aci/minimal/policy_disable_stdio.rego |
Regenerated minimal stdio fragment. |
src/confcom/samples/aci/minimal/container1.rego |
Regenerated minimal container fixture. |
src/confcom/samples/aci/existing_policy/policy.rego |
Regenerated existing-policy sample. |
src/confcom/samples/aci/existing_policy/policy_fragment.rego |
Regenerated existing-policy fragment. |
src/confcom/samples/aci/existing_policy/policy_exclude_default_fragment.rego |
Regenerated existing-policy exclusion fragment. |
src/confcom/samples/aci/existing_policy/container1.rego |
Regenerated existing-policy container fixture. |
src/confcom/samples/aci/existing_policy_allow_all/policy_exclude_default_fragment.rego |
Regenerated allow-all exclusion fragment. |
src/confcom/samples/aci/existing_policy_allow_all/container1.rego |
Regenerated allow-all container fixture. |
src/confcom/samples/aci/environment_variables/container1.rego |
Regenerated environment-variable fixture. |
src/confcom/samples/aci/default_variables/policy.rego |
Regenerated default-variables policy. |
src/confcom/samples/aci/default_variables/policy_fragment.rego |
Regenerated default-variables fragment. |
src/confcom/samples/aci/default_variables/policy_exclude_default_fragment.rego |
Regenerated default-variable exclusion fragment. |
src/confcom/samples/aci/default_variables/policy_disable_stdio.rego |
Regenerated default-variable stdio fragment. |
src/confcom/samples/aci/default_variables/container1.rego |
Regenerated default-variable container fixture. |
src/confcom/samples/aci/default_variables_override/container1.rego |
Regenerated default-variable override fixture. |
src/confcom/samples/aci/container_group_profiles/policy.rego |
Regenerated container-group profile policy. |
src/confcom/samples/aci/container_group_profiles/policy_fragment.rego |
Regenerated container-group profile fragment. |
src/confcom/samples/aci/container_group_profiles/policy_exclude_default_fragment.rego |
Regenerated profile exclusion fragment. |
src/confcom/samples/aci/container_group_profiles/container1.rego |
Regenerated profile container fixture. |
src/confcom/samples/aci/conflicting_variables/container1.rego |
Regenerated conflicting-variable fixture. |
src/confcom/samples/aci/command/container1.rego |
Regenerated command fixture. |
src/confcom/HISTORY.rst |
Release notes for the update. |
src/confcom/azext_confcom/tests/latest/test_confcom_scenario.py |
Updated scenario coverage for the framework version. |
src/confcom/azext_confcom/rootfs_proxy.py |
Updated integrity-vhd and CimWriter packaging. |
src/confcom/azext_confcom/README.md |
Documentation update; framework-version example remains inconsistent. |
src/confcom/azext_confcom/lib/containers.py |
Default signal serialization updates. |
src/confcom/azext_confcom/docs/policy_enforcement_points.md |
Enforcement-point documentation; framework-version example remains inconsistent. |
src/confcom/azext_confcom/data/sidecar_rego_policy.txt |
Updated sidecar policy template. |
src/confcom/azext_confcom/data/internal_config.json |
Updated policy and mount configuration. |
src/confcom/azext_confcom/data/customer_rego_policy.txt |
Updated customer policy template; critical deserialization incompatibility remains. |
src/confcom/azext_confcom/data/customer_rego_policy_windows.txt |
Updated Windows customer policy template. |
src/confcom/azext_confcom/data/customer_rego_fragment.txt |
Updated customer policy fragment. |
src/confcom/azext_confcom/container.py |
Windows rules and registry-change serialization; output assertions remain needed. |
src/confcom/azext_confcom/config.py |
New inputs, signals, and platform-aware mounts. |
src/confcom/azext_confcom/azext_metadata.json |
Preview metadata update. |
src/confcom/.gitignore |
Binary build-artifact exclusions. |
Review details
Suppressed comments (2)
src/confcom/azext_confcom/container.py:831
- The new Windows serialization branch is not verified by the added tests:
RegistryChangesInputonly checks the private_registry_changesfield and never asserts thatget_policy_json()emitsregistry_changesfor Windows (or omits it for Linux). Add output assertions so this policy contract cannot regress while parsing tests still pass.
# registry_changes is Windows-only and emitted only when supplied
if self._registry_changes:
elements[config.POLICY_FIELD_CONTAINERS_ELEMENTS_REGISTRY_CHANGES] = self._registry_changes
src/confcom/azext_confcom/security_policy.py:1180
allowedLogProvidersis passed through without checking that it is a list of strings. A malformed string value is emitted asallowed_log_providers := "..."instead of a Rego array, so the generated C-WCOW policy has the wrong type; reject invalid input before serialization.
allowed_log_providers = case_insensitive_dict_get(
policy_input_json, config.ACI_FIELD_ALLOWED_LOG_PROVIDERS
) or []
- Files reviewed: 148/210 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
confcom |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved critical serialization and moderate mapped-directory and release-version issues remain.
Get a fresh assessment by requesting another Copilot review.
Review details
Suppressed comments (3)
src/confcom/azext_confcom/data/customer_rego_policy_windows.txt:38
- This placeholder is populated unconditionally with
_get_mapped_directory_rego(), so Windows policies with nomappedDirectoriesstill emitmapped_directories := []and bothmapped_directory_mount/mapped_directory_unmountbindings. The PR description says the list and wiring are emitted only when the list is non-empty; either conditionally omit this block or update the stated contract and tests.
%sload_fragment := data.framework.load_fragment
src/confcom/azext_confcom/lib/serialization.py:119
- The PR summary and both policy docs state that
mapped_directoriesand its enforcement bindings are emitted only whenmappedDirectoriesis non-empty, but this branch always serializesmapped_directories := []for Windows and the binding list above always includes the mapped-directory rules. This changes every Windows policy and contradicts the stated contract; either gate both on a non-empty list or update the contract and tests to document the always-wired behavior.
{"mapped_directories := " + mapped_directories_json if is_windows else ""}
{enforcement_bindings}
src/confcom/azext_confcom/security_policy.py:268
- The PR description and the updated documentation say
mapped_directoriesand its bindings are emitted only when the list is non-empty, but this helper always emitsmapped_directories := []and both enforcement bindings; the added test also locks in the opposite behavior. Please reconcile the implementation, tests, and stated contract before merging.
def _get_mapped_directory_rego(self) -> str:
return (
f"mapped_directories := {pretty_print_func(self._mapped_directories)}\n"
"mapped_directory_mount := data.framework.mapped_directory_mount\n"
"mapped_directory_unmount := data.framework.mapped_directory_unmount\n"
)
- Files reviewed: 163/214 changed files
- Comments generated: 2
- Review effort level: Lite
b474b47 to
f3841d4
Compare
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
Assisted-by: GitHub-Copilot copilot-review Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com> (cherry picked from commit 72c0de5)
Windows VN2 pods need CCE policies that match what actually lands in the container at runtime. The mount *sources* are still emitted by the (Linux) mounthost as sandbox:///tmp/atlas/emptydir/.+, but the *destination* paths are translated to Windows form by k8s/containerd/hcsshim (e.g. /var/run/secrets/... -> C:\var\run\secrets\..., /etc/hosts -> C:\Windows\System32\drivers\etc\hosts). Windows managed identity also exposes IDENTITY_ENDPOINT, which Linux does not. Branch VN2 mounts and injected env and mount rules based on platform (linux/amd64 vs windows/amd64): - Add Windows mount sets (C:\ destinations; empty user/privileged sets) and managedIdentityWindows env rules (adds IDENTITY_ENDPOINT). - IDENTITY_ENDPOINT is WCOW-only for now to avoid changing a bunch of LCOW tests. - config.py: platform-aware get_default_mounts_*_virtual_node() helpers. - container.py: pick Windows env rules (managed identity + restart only; OPENGCS/FABRIC stay Linux-specific) and Windows VN2 mounts by platform. - security_policy.py: route the VN2 privileged / workload-identity mount call sites through the platform-aware helpers. Assisted-by: GitHub Copilot:claude-opus-4.8 Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com> (cherry picked from commit 42cecaf)
Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com> (cherry picked from commit 32a06b7)
Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com> (cherry picked from commit 773679c)
Support the log_provider enforcement point from hcsshim PR Azure#2763 (CWCOW: Logging enforcement) in the Windows policy producer. The Windows rego policy template now wires log_provider and emits allow_log_provider_dropping plus an allowed_log_providers list. There is no ARM property for log providers, so the allow-list is settable only through the --input JSON via the new allowedLogProviders and allowLogProviderDropping fields. allow_log_provider_dropping defaults to true, mirroring allow_environment_variable_dropping, so providers outside the allow-list are dropped rather than denied. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Bump api_version to 0.12.0 and framework_version to 0.5.0 to match the hcsshim CWCOW policy framework, and add the enforcement points introduced by PR Azure#2842. The Windows policy template now wires registry_changes, unmount_cims, host_network and load_transparency_trust_list, and emits the allow_host_network, allow_unencrypted_scratch, allow_capability_dropping and allow_registry_changes_dropping switches. The Linux policy template wires host_network and load_transparency_trust_list (newly active at api_version 0.12.0) and emits allow_host_network, which has no framework default. The fragment and sidecar templates are bumped to framework_version 0.5.0. These enforcement points have no ARM property, so they are exposed only through confcom-owned --input (-i) JSON fields, mirroring the log-provider fields: the top-level allowHostNetwork and allowRegistryChangesDropping bools, the per-container registryChanges object (passed through in the hcsshim add_values/delete_keys shape), and the top-level mappedDirectories list. mapped_directory_mount/unmount are wired only when mappedDirectories is supplied, since wiring them without backing data can only deny; an undeclared hot-add is denied by the framework either way. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Elastic SAN volumes on Confidential ACI are bind-mounted into the workload container by the atlas mounthost from /tmp/atlas/esanVolume/<deployment>/<volume>, analogous to Azure File's /tmp/atlas/azureFileVolume/... . Register a matching "elasticSan" mount type so CCE policies accept the Elastic SAN volume mount. The type name matches the ARM/CCE volume property (Volume.ElasticSan -> "elasticSan") and the source mirrors the azureFile entry, both per Compute-ACI release/rel-20260429. Compute-ACI also places a Linux pod that mounts an Elastic SAN volume on the host network (iscsid needs the UVM init netns), so the generated policy for such a pod must allow the host_network enforcement point (added in Azure#2842). Detect the elasticSan mount type and force allow_host_network on for Linux policies, leaving the flag at its default False otherwise. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Allow signals 9 and 15 for every generated workload container and the default pause container. Preserve additional image stop signals while ensuring the shutdown defaults are always present. Regenerate the ACI, VN2, Radius, and image policy fixtures to reflect the new defaults. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Export scratch_unmount from generated Windows policies so container teardown clears framework scratch metadata and container recreation can remount the same path. Add a regression assertion covering both scratch mount and unmount wiring. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Signed-off-by: Takuro Sato <takurosato@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Takuro Sato <takurosato@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Takuro Sato <takurosato@microsoft.com>
Add "vtable" entry for host_network and load_transparency_trust_list, and transparently pass through allowed_log_providers which contains a list rather than a boolean. Then for the C-WCOW ones conditionally add them. Assisted-by: GitHub-Copilot Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep existing Linux policy and fragment output on the deployed policy contract while allowing callers to explicitly select the latest bundled Linux API and framework. Windows continues to use the latest bundled contract, and Radius serialization preserves enforcement-point version boundaries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Always emit the mapped-directory enforcement bindings, including an empty rule set, and reject malformed mappedDirectories input instead of coercing values. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update the infrastructure_svn scenario test to assert the generated fragment minimum_svn instead of an unrelated framework version. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add mapped_directories and registry_changes to the Radius policy models and preserve them across policy deserialization and serialization. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update the Rego examples using policy API 0.12.0 to declare the corresponding framework version 0.5.0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tingmao Wang <m@maowtm.org>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Document that Windows policies always wire mapped-directory enforcement and use an empty list to deny undeclared hot-adds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
f3841d4 to
d80e88e
Compare
🤖 PR Validation —⚠️ Review suggested
Summary
Extends the
az confcomextension (src/confcom,azext_confcom) to generate policies for the newer hcsshim policy framework, adds several Confidential-WCOW (C-WCOW) enforcement points, adds Elastic SAN volume support for Confidential ACI, and bundles theCimWriterbinaries needed to build C-WCOW policies on WS2025. The extension is bumped to2.2.0.Framework / API version bumps
api_version0.11.0→0.12.0;framework_version→0.5.0across the customer/sidecar rego templates,internal_config.json, README, docs, and regenerated samples.New C-WCOW enforcement points (hcsshim PR #2842)
All of the following have no ARM property and are settable only via the
--inputJSON:allowedLogProviders/allowLogProviderDropping— ETW log-provider allow-list and dropping switch (dropping defaults totrue).allowHostNetwork— wireshost_network(defaultsfalse).allowRegistryChangesDroppingand per-containerregistryChanges(hcsshim shape{"add_values":[...], "delete_keys":[...]}, emitted per container only when supplied).mappedDirectories— backsmapped_directory_mount/unmount(VSMB hot-add) for --inputregistry_changes,unmount_cims,scratch_unmount, andload_transparency_trust_list.Elastic SAN volumes (Confidential ACI)
elasticSanmount type (sandbox:///tmp/atlas/esanVolume/.+).host_networkis forced on when an Elastic SAN mount is present, matching Compute-ACI (iscsid needs the UVM init netns).Windows / VN2 fixes
IDENTITY_ENDPOINT); Windows containers get all injected rules except OPENGCS (TERM=xtermis Linux-GCS only).C:\var\run\secrets\...) via newget_default_mounts_*platform-aware helpers.SIGKILL(9) andSIGTERM(15).Packaging
rootfs_proxy.py: fetch integrity-vhd v2.2 binaries (updated SHAs) and bundleCimWriter.dll+CimWriter.LICENSE.pdf; binary list restructured to fetch all platforms at build time. Added to.gitignore.Tests
test_confcom_input_fields.pycovering host-network, signals, Windows wiring, registry-changes (dropping + per-container), mapped-directories, and log-providers.test_confcom_scenario.pyupdated forframework_version0.5.0; samples regenerated.This checklist is used to make sure that common guidelines for a pull request are followed.
Related command
confcom
General Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install azdevrequired)For new extensions:
About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update
src/index.jsonautomatically.You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify
src/index.json.