Examples/cDSCDockerSwarmTLSExample.ps1
$swarmConfig = @{ AllNodes = @( @{ NodeName = "localhost" } ); NonNodeData = @{ masterip = (Get-VMNetworkAdapter node1).IPAddresses | Where-Object {$_ -notmatch "::"} #Replace with the IP of the node you want the initial master } } configuration TestDockerSwarm { Import-DscResource -ModuleName 'PSDesiredStateConfiguration' Import-DSCResource -ModuleName xDSCFirewall Import-DscResource -ModuleName cDSCDockerSwarm -ModuleVersion 0.9 node $AllNodes.NodeName { xDSCFirewall DisablePrivate { Ensure = "Absent" Zone = "Private" } WindowsFeature ContainerInstall { Ensure = "Present" Name = "Containers" } cDockerBinaries Docker { Ensure = 'Present' DependsOn = '[WindowsFeature]ContainerInstall' version = '17.06.0-ce' DownloadChannel = 'Stable' } cDockerTLSAutoEnrollment Enrollment { Ensure = 'Present' EnrollmentServer = $ConfigurationData.NonNodeData.masterip DependsOn = '[cDockerBinaries]Docker' } cDockerConfig Config { Ensure = 'Present' DependsOn = '[cDockerTLSAutoEnrollment]Enrollment' RestartOnChange = $false ExposeAPI = $true InsecureRegistries = 'imageregistry.contoso.com:5000' Labels = "com.contoso.environment=test", "com.contoso.winver=core" EnableTLS = $true } cDockerSwarm Swarm { DependsOn = '[cDockerConfig]Config' SwarmMasterURI = "$($ConfigurationData.NonNodeData.masterip):2377" SwarmMode = 'Active' ManagerCount = 3 SwarmManagement = 'Automatic' } cInsecureRegistryCert registry { Ensure = 'Present' DependsOn = '[cDockerBinaries]Docker' registryURI = 'myregistry:5000' Certificate = '-----BEGIN CERTIFICATE----- MIIDGzCCAgOgAwIBAgIJAODTn5nU1n6/MA0GCSqGSIb3DQEBBQUAMCQxIjAgBgNV BAMMGWltYWdlcmVnaXN0cnkuY29udG9zby5jb20wHhcNMTcwNzE0MDEwMDA1WhcN MjcwNzEyMDEwMDA1WjAkMSIwIAYDVQQDDBlpbWFnZXJlZ2lzdHJ5LmNvbnRvc28u Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwn7hLsaq40PaJ4iV VTr37g/VB8h4sPebX/sj2wKtUX4Kb8wmBkiDG04B0hVsjvPOJT1CfT+iWVM9Jn1V KrfdMk6qBGN1WX9TejfyC3Czdd3T0Ql+MVPFKtJHcmjAuuOVvA7BYfymWBTBqAZ4 fVYBBVIHH02P4RYxqZzGBhe+4YYvsLwKRIBqvW58XLSnmBd0muiqbqZIo19znqNO BH79+Ta/w12jB+jTXTRR5Po75KlF5Yophn1wUnOw9M4UdfQVGkpPAJRwyDRNedbw eqzoc972CX9UtqjwFQKyWhmBAmpQXGtljt5ueAcv56YJ10/pBA4EP+HQIdypdyD4 NniznwIDAQABo1AwTjAdBgNVHQ4EFgQUTZgW9lOq2qvzS9HYlZ7cEpghfUQwHwYD VR0jBBgwFoAUTZgW9lOq2qvzS9HYlZ7cEpghfUQwDAYDVR0TBAUwAwEB/zANBgkq hkiG9w0BAQUFAAOCAQEAvJQh9LekAtamITCGRnbtPuknA7JvNfm1zLphrc4+qGjB qJhew2Sa732yuSbMR133QBeh5TcbMlkRzgYCAXc6BtD3qMkG/lF8PleBycc5QIMq 5qMiR6ASnhigbLbwx7bHAt/tW/8jpGFIBAEJhKf+oQSCG6+K/CcdFoafvofQ5Ncc uuqX35bDg4ZToN060ITYhp5BWDN9vhCeUwKrj8pgeUNINjICFGaEohaBvfq1Xi/T eI3TuM4iJ8pdFGtHpNHnSV4Z/aRlBWonsHC2YrGnRQ3qBu+29TpPgxRBNuk0mv8O BzKqMFhy29cU/Rjrvrk4BBEeg0dFSF0zlC1fXWeWRA== -----END CERTIFICATE-----' } } } TestDockerSwarm -OutputPath .\ -configurationData $swarmConfig |