Skip to content

Support version pinning in a configuration document #543

Open
@michaeltlombardi

Description

@michaeltlombardi

Summary of the new feature / enhancement

As an infrastructure engineer, I want to be able to define version pins for the resoures in my configuration documents to ensure my configuration management is as deterministic as possible.

Proposed technical implementation details (optional)

A few options come to mind.

The easiest-for-users would be to allow them to append a version pin to the end of the resource type name for a resource, like Microsoft.DSC/PowerShell@v1.0.0. This would require introduce complexity to the engine for handling and impact the way configuration functions work, which makes it a harder sell to me.

The more explicit option is to support a version field on the resource instance declaration:

- type:    Microsoft.DSC/PowerShell
  version: v1.0.0

Another option would be to define it under resource metadata:

- type: Microsoft.DSC/PowerShell
  metadata:
    Microsoft.DSC:
      version: v1.0.0

Of the available options, I lean more towards the metadata implementation, even though it requires defining per-resource metadata. However, we've discussed other uses for this property bag, and defining a structure for this would pave the way for those use cases. It would also enable users to declare version pins in the top-level metadata with per-resource overrides (if we choose to support that).

I don't think this would require any further work for adapters, since they already report available resources and versions to DSC.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions