From 44458fa6220bfffca8aec0e5eacdb10346d1c294 Mon Sep 17 00:00:00 2001 From: paladin-devops <joe.rajewski@hashicorp.com> Date: Tue, 26 Apr 2022 20:03:48 +0000 Subject: [PATCH 1/4] backport of commit a94d94bbf06f77f331fb3e1f57090d56398ed80a --- builtin/nomad/jobspec/platform.go | 25 +++++++++++++++++++------ go.mod | 8 ++++---- go.sum | 8 ++++++++ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/builtin/nomad/jobspec/platform.go b/builtin/nomad/jobspec/platform.go index d36c8c28c6b..3bd5b32e603 100644 --- a/builtin/nomad/jobspec/platform.go +++ b/builtin/nomad/jobspec/platform.go @@ -102,7 +102,7 @@ func (p *Platform) resourceJobCreate( // Parse the HCL st.Update("Parsing the job specification...") - job, err := p.jobspec(client.NomadClient, p.config.Jobspec) + job, err := p.jobspec(client.NomadClient, p.config.Jobspec, p.config.Hcl1) if err != nil { return err } @@ -179,7 +179,7 @@ func (p *Platform) resourceJobStatus( jobClient := client.NomadClient.Jobs() s.Update("Parsing the job specification...") - jobspec, err := p.jobspec(client.NomadClient, p.config.Jobspec) + jobspec, err := p.jobspec(client.NomadClient, p.config.Jobspec, p.config.Hcl1) if err != nil { return err } @@ -329,7 +329,7 @@ func (p *Platform) Deploy( return nil, err } // Parse the HCL - job, err := p.jobspec(client, p.config.Jobspec) + job, err := p.jobspec(client, p.config.Jobspec, p.config.Hcl1) if err != nil { return nil, err } @@ -398,7 +398,7 @@ func (p *Platform) Generation( } // Parse the HCL - job, err := p.jobspec(client, p.config.Jobspec) + job, err := p.jobspec(client, p.config.Jobspec, p.config.Hcl1) if err != nil { return nil, err } @@ -419,12 +419,16 @@ func (p *Platform) Generation( } -func (p *Platform) jobspec(client *api.Client, path string) (*api.Job, error) { +func (p *Platform) jobspec(client *api.Client, path string, hcl1 bool) (*api.Job, error) { jobspec, err := ioutil.ReadFile(p.config.Jobspec) if err != nil { return nil, err } - job, err := client.Jobs().ParseHCL(string(jobspec), true) + job, err := client.Jobs().ParseHCLOpts(&api.JobsParseRequest{ + JobHCL: string(jobspec), + HCLv1: hcl1, + Canonicalize: true, + }) if err != nil { return nil, err } @@ -520,6 +524,9 @@ func (p *Platform) Status( type Config struct { // The path to the job specification to load. Jobspec string `hcl:"jobspec,attr"` + + // Signifies whether the jobspec should be parsed as HCL1 or not + Hcl1 bool `hcl:"hcl1,optional"` } func (p *Platform) Documentation() (*docs.Documentation, error) { @@ -624,6 +631,12 @@ job "web" { "Path to a Nomad job specification file.", ) + doc.SetField( + "hcl1", + "Parses jobspec as HCL1 instead of HCL2.", + docs.Default("false"), + ) + doc.SetField( "consul_token", "The Consul ACL token used to register services with the Nomad job.", diff --git a/go.mod b/go.mod index 8498e8aafb2..e7e95f58f3a 100644 --- a/go.mod +++ b/go.mod @@ -60,7 +60,7 @@ require ( github.com/hashicorp/go-version v1.2.0 github.com/hashicorp/hcl/v2 v2.10.1-0.20210621220818-327f3ce2570e github.com/hashicorp/horizon v0.0.0-20210317214650-d2053943be04 - github.com/hashicorp/nomad/api v0.0.0-20210907162733-cf7675a376b9 + github.com/hashicorp/nomad/api v0.0.0-20220426182820-059c89dff073 github.com/hashicorp/vault/api v1.0.5-0.20200519221902-385fac77e20f github.com/hashicorp/vault/sdk v0.1.14-0.20201202172114-ee5ebeb30fef github.com/hashicorp/waypoint-hzn v0.0.0-20201008221232-97cd4d9120b9 @@ -75,7 +75,7 @@ require ( github.com/mitchellh/go-testing-interface v1.14.1 github.com/mitchellh/go-wordwrap v1.0.1 github.com/mitchellh/hashstructure/v2 v2.0.1 - github.com/mitchellh/mapstructure v1.4.1 + github.com/mitchellh/mapstructure v1.4.3 github.com/mitchellh/pointerstructure v1.2.0 github.com/mitchellh/protoc-gen-go-json v1.1.1-0.20211009224639-45822525aa9c github.com/mitchellh/reflectwalk v1.0.1 @@ -93,7 +93,7 @@ require ( github.com/sebdah/goldie/v2 v2.5.3 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/slack-go/slack v0.6.5 - github.com/stretchr/testify v1.7.0 + github.com/stretchr/testify v1.7.1 github.com/vektra/mockery v1.1.2 github.com/zclconf/go-cty v1.8.4 github.com/zclconf/go-cty-yaml v1.0.2 @@ -204,7 +204,7 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/consul/api v1.7.0 // indirect - github.com/hashicorp/cronexpr v1.1.0 // indirect + github.com/hashicorp/cronexpr v1.1.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.0 // indirect github.com/hashicorp/go-retryablehttp v0.6.6 // indirect diff --git a/go.sum b/go.sum index f6f5173a06e..42e9ce4efd4 100644 --- a/go.sum +++ b/go.sum @@ -1028,6 +1028,8 @@ github.com/hashicorp/consul/sdk v0.6.0 h1:FfhMEkwvQl57CildXJyGHnwGGM4HMODGyfjGwN github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= github.com/hashicorp/cronexpr v1.1.0 h1:dnNsWtH0V2ReN7JccYe8m//Bj14+PjJDntR1dz0Cixk= github.com/hashicorp/cronexpr v1.1.0/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c= +github.com/hashicorp/cronexpr v1.1.1/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= @@ -1118,6 +1120,8 @@ github.com/hashicorp/memberlist v0.2.2 h1:5+RffWKwqJ71YPu9mWsF7ZOscZmwfasdA8kbdC github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/nomad/api v0.0.0-20210907162733-cf7675a376b9 h1:MJohpDqE60LZmJXdhTdnUz3n4dW/0C5OQWkpqbQSETM= github.com/hashicorp/nomad/api v0.0.0-20210907162733-cf7675a376b9/go.mod h1:vYHP9jMXk4/T2qNUbWlQ1OHCA1hHLil3nvqSmz8mtgc= +github.com/hashicorp/nomad/api v0.0.0-20220426182820-059c89dff073 h1:Rvw2TS44h5hrKXWxIf6wd5EeFoo3+tCsDY9plo5X7DY= +github.com/hashicorp/nomad/api v0.0.0-20220426182820-059c89dff073/go.mod h1:b/AoT79m3PEpb6tKCFKva/M+q1rKJNUk5mdu1S8DymM= github.com/hashicorp/opaqueany v0.0.0-20220321170339-a5c6ff5bb0ec h1:WfdoyL0vJ+mQWaUdzNMkk+o1ACVa6aO2i9AzGPboF5k= github.com/hashicorp/opaqueany v0.0.0-20220321170339-a5c6ff5bb0ec/go.mod h1:adXen43rUDlxaaEpSsu3lcG4bfteZNptunpxPvx0sW8= github.com/hashicorp/protostructure v0.0.0-20220321173139-813f7b927cb7 h1:jTrmnIPP65IvMLaFr05QzwGGHpK2rMpwFxqh9n3nv3o= @@ -1416,6 +1420,8 @@ github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= @@ -1793,6 +1799,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= From 35b08b212384cdf213421e4aa21e1deaa1ef6f92 Mon Sep 17 00:00:00 2001 From: paladin-devops <joe.rajewski@hashicorp.com> Date: Tue, 26 Apr 2022 20:06:15 +0000 Subject: [PATCH 2/4] backport of commit 1586b3bcf2e0d9f1ffa5126ebc51e1d95fbeda8d --- go.sum | 6 ------ 1 file changed, 6 deletions(-) diff --git a/go.sum b/go.sum index 42e9ce4efd4..6281b2f66c0 100644 --- a/go.sum +++ b/go.sum @@ -1026,8 +1026,6 @@ github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.6.0 h1:FfhMEkwvQl57CildXJyGHnwGGM4HMODGyfjGwNM1Vdw= github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= -github.com/hashicorp/cronexpr v1.1.0 h1:dnNsWtH0V2ReN7JccYe8m//Bj14+PjJDntR1dz0Cixk= -github.com/hashicorp/cronexpr v1.1.0/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c= github.com/hashicorp/cronexpr v1.1.1/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1118,8 +1116,6 @@ github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/memberlist v0.2.2 h1:5+RffWKwqJ71YPu9mWsF7ZOscZmwfasdA8kbdC7AO2g= github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/nomad/api v0.0.0-20210907162733-cf7675a376b9 h1:MJohpDqE60LZmJXdhTdnUz3n4dW/0C5OQWkpqbQSETM= -github.com/hashicorp/nomad/api v0.0.0-20210907162733-cf7675a376b9/go.mod h1:vYHP9jMXk4/T2qNUbWlQ1OHCA1hHLil3nvqSmz8mtgc= github.com/hashicorp/nomad/api v0.0.0-20220426182820-059c89dff073 h1:Rvw2TS44h5hrKXWxIf6wd5EeFoo3+tCsDY9plo5X7DY= github.com/hashicorp/nomad/api v0.0.0-20220426182820-059c89dff073/go.mod h1:b/AoT79m3PEpb6tKCFKva/M+q1rKJNUk5mdu1S8DymM= github.com/hashicorp/opaqueany v0.0.0-20220321170339-a5c6ff5bb0ec h1:WfdoyL0vJ+mQWaUdzNMkk+o1ACVa6aO2i9AzGPboF5k= @@ -1418,7 +1414,6 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -1797,7 +1792,6 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= From f15e31b9b90d41f049ce9c9e5b4021aba0d94509 Mon Sep 17 00:00:00 2001 From: paladin-devops <joe.rajewski@hashicorp.com> Date: Tue, 26 Apr 2022 20:08:27 +0000 Subject: [PATCH 3/4] backport of commit fa4f9e053ee6b704cbe1718019028f0a11575744 --- .../components/platform-nomad-jobspec-canary.mdx | 10 +++++++++- .../partials/components/platform-nomad-jobspec.mdx | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/website/content/partials/components/platform-nomad-jobspec-canary.mdx b/website/content/partials/components/platform-nomad-jobspec-canary.mdx index 57524208f05..b38714231ca 100644 --- a/website/content/partials/components/platform-nomad-jobspec-canary.mdx +++ b/website/content/partials/components/platform-nomad-jobspec-canary.mdx @@ -108,7 +108,15 @@ Uses the runner config environment variable VAULT_TOKEN. ### Optional Parameters -This plugin has no optional parameters. +These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin. + +#### hcl1 + +Parses jobspec as HCL1 instead of HCL2. + +- Type: **bool** +- **Optional** +- Default: false ### Output Attributes diff --git a/website/content/partials/components/platform-nomad-jobspec.mdx b/website/content/partials/components/platform-nomad-jobspec.mdx index fdee59205c0..ccca14f3af0 100644 --- a/website/content/partials/components/platform-nomad-jobspec.mdx +++ b/website/content/partials/components/platform-nomad-jobspec.mdx @@ -108,7 +108,15 @@ Uses the runner config environment variable VAULT_TOKEN. ### Optional Parameters -This plugin has no optional parameters. +These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin. + +#### hcl1 + +Parses jobspec as HCL1 instead of HCL2. + +- Type: **bool** +- **Optional** +- Default: false ### Output Attributes From d1b4bad9f4f41b291545044927f78ddef264b261 Mon Sep 17 00:00:00 2001 From: paladin-devops <joe.rajewski@hashicorp.com> Date: Tue, 26 Apr 2022 20:11:09 +0000 Subject: [PATCH 4/4] backport of commit 6cd9fd084b49f1a4677187f1ff31c96ead8a6c32 --- .changelog/3287.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3287.txt diff --git a/.changelog/3287.txt b/.changelog/3287.txt new file mode 100644 index 00000000000..cac9a8d8a72 --- /dev/null +++ b/.changelog/3287.txt @@ -0,0 +1,3 @@ +```release-note:improvement +plugin/nomad-jobspec: Add configuration option to parse jobspec as HCL1 instead of HCL2 +``` \ No newline at end of file