Skip to content

Commit bd3fc1f

Browse files
authored
Merge branch 'main' into mafredri/feat-cli-ssh-add-logs
2 parents 506c969 + 1558ef5 commit bd3fc1f

File tree

17 files changed

+572
-72
lines changed

17 files changed

+572
-72
lines changed

.github/workflows/pr-cleanup.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
fi
2626
2727
- name: Delete image
28+
continue-on-error: true
2829
uses: bots-house/ghcr-delete-image-action@v1.1.0
2930
with:
3031
owner: coder
@@ -33,20 +34,17 @@ jobs:
3334
tag: pr${{ steps.pr_number.outputs.PR_NUMBER }}
3435

3536
- name: Set up kubeconfig
36-
if: always()
3737
run: |
3838
set -euxo pipefail
3939
mkdir -p ~/.kube
4040
echo "${{ secrets.DELIVERYBOT_KUBECONFIG }}" > ~/.kube/config
4141
export KUBECONFIG=~/.kube/config
4242
4343
- name: Delete helm release
44-
if: always()
4544
run: |
4645
set -euxo pipefail
4746
helm delete --namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "helm release not found"
4847
4948
- name: "Remove PR namespace"
50-
if: always()
5149
run: |
5250
kubectl delete namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "namespace not found"

go.mod

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ require (
9999
github.com/go-ping/ping v1.1.0
100100
github.com/go-playground/validator/v10 v10.14.0
101101
github.com/gofrs/flock v0.8.1
102-
github.com/gohugoio/hugo v0.113.0
102+
github.com/gohugoio/hugo v0.114.1
103103
github.com/golang-jwt/jwt v3.2.2+incompatible
104104
github.com/golang-jwt/jwt/v4 v4.5.0
105105
github.com/golang-migrate/migrate/v4 v4.16.0
@@ -138,15 +138,15 @@ require (
138138
github.com/prometheus/common v0.42.0
139139
github.com/quasilyte/go-ruleguard/dsl v0.3.21
140140
github.com/robfig/cron/v3 v3.0.1
141-
github.com/spf13/afero v1.9.3
141+
github.com/spf13/afero v1.9.5
142142
github.com/spf13/pflag v1.0.5
143143
github.com/stretchr/testify v1.8.4
144144
github.com/swaggo/http-swagger/v2 v2.0.1
145145
github.com/swaggo/swag v1.8.6
146146
github.com/tabbed/pqtype v0.1.1
147147
github.com/u-root/u-root v0.11.0
148148
github.com/unrolled/secure v1.13.0
149-
github.com/valyala/fasthttp v1.47.0
149+
github.com/valyala/fasthttp v1.48.0
150150
github.com/wagslane/go-password-validator v0.3.0
151151
go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
152152
go.nhat.io/otelsql v0.9.0
@@ -162,11 +162,11 @@ require (
162162
golang.org/x/crypto v0.10.0
163163
golang.org/x/exp v0.0.0-20230315142452-642cacee5cc0
164164
golang.org/x/mod v0.11.0
165-
golang.org/x/oauth2 v0.8.0
166-
golang.org/x/sync v0.2.0
165+
golang.org/x/oauth2 v0.9.0
166+
golang.org/x/sync v0.3.0
167167
golang.org/x/sys v0.9.0
168168
golang.org/x/term v0.9.0
169-
golang.org/x/tools v0.9.1
169+
golang.org/x/tools v0.9.3
170170
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
171171
golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b
172172
google.golang.org/api v0.128.0
@@ -202,7 +202,7 @@ require (
202202
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
203203
github.com/aymerick/douceur v0.2.0 // indirect
204204
github.com/beorn7/perks v1.0.1 // indirect
205-
github.com/bep/godartsass v0.16.0 // indirect
205+
github.com/bep/godartsass v1.2.0 // indirect
206206
github.com/bep/golibsass v1.1.1 // indirect
207207
github.com/cespare/xxhash/v2 v2.2.0 // indirect
208208
github.com/charmbracelet/bubbles v0.15.0 // indirect
@@ -312,7 +312,6 @@ require (
312312
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect
313313
github.com/sirupsen/logrus v1.9.2 // indirect
314314
github.com/spf13/cast v1.5.1 // indirect
315-
github.com/spf13/jwalterweatherman v1.1.0 // indirect
316315
github.com/swaggo/files/v2 v2.0.0 // indirect
317316
github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af // indirect
318317
github.com/tailscale/certstore v0.1.1-0.20220316223106-78d6e1c49d8d // indirect
@@ -345,7 +344,7 @@ require (
345344
go.opentelemetry.io/otel/metric v0.37.0 // indirect
346345
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
347346
go4.org/mem v0.0.0-20210711025021-927187094b94 // indirect
348-
golang.org/x/net v0.10.0 // indirect
347+
golang.org/x/net v0.11.0 // indirect
349348
golang.org/x/text v0.10.0 // indirect
350349
golang.org/x/time v0.3.0 // indirect
351350
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
@@ -359,3 +358,5 @@ require (
359358
howett.net/plist v1.0.0 // indirect
360359
inet.af/peercred v0.0.0-20210906144145-0893ea02156a // indirect
361360
)
361+
362+
require github.com/bep/godartsass/v2 v2.0.0 // indirect

go.sum

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,10 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
118118
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
119119
github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
120120
github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
121-
github.com/bep/godartsass v0.16.0 h1:nTpenrZBQjVSjLkCw3AgnYmBB2czauTJa4BLLv448qg=
122-
github.com/bep/godartsass v0.16.0/go.mod h1:6LvK9RftsXMxGfsA0LDV12AGc4Jylnu6NgHL+Q5/pE8=
121+
github.com/bep/godartsass v1.2.0 h1:E2VvQrxAHAFwbjyOIExAMmogTItSKodoKuijNrGm5yU=
122+
github.com/bep/godartsass v1.2.0/go.mod h1:6LvK9RftsXMxGfsA0LDV12AGc4Jylnu6NgHL+Q5/pE8=
123+
github.com/bep/godartsass/v2 v2.0.0 h1:Ruht+BpBWkpmW+yAM2dkp7RSSeN0VLaTobyW0CiSP3Y=
124+
github.com/bep/godartsass/v2 v2.0.0/go.mod h1:AcP8QgC+OwOXEq6im0WgDRYK7scDsmZCEW62o1prQLo=
123125
github.com/bep/golibsass v1.1.1 h1:xkaet75ygImMYjM+FnHIT3xJn7H0xBA9UxSOJjk8Khw=
124126
github.com/bep/golibsass v1.1.1/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA=
125127
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
@@ -264,7 +266,7 @@ github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03D
264266
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
265267
github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og=
266268
github.com/frankban/quicktest v1.14.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
267-
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
269+
github.com/frankban/quicktest v1.14.5 h1:dfYrrRyLtiqT9GyKXgdh+k4inNeTvmGbuSgZ3lx3GhA=
268270
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU=
269271
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
270272
github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88=
@@ -354,8 +356,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
354356
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
355357
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
356358
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
357-
github.com/gohugoio/hugo v0.113.0 h1:MxJqjpfmpNVmP+6qF/AwfTbPnYK58fCr3cR9QXzxoyk=
358-
github.com/gohugoio/hugo v0.113.0/go.mod h1:UXUdtWhwrI6NX8pMnbaF3J5bpdFjPoCjI2adE/MX0gs=
359+
github.com/gohugoio/hugo v0.114.1 h1:G1Huj3N8nuaNZ4SaNvf8JHH6yG9MA/gajdMaOOXjkkU=
360+
github.com/gohugoio/hugo v0.114.1/go.mod h1:roeP8rAxJktJhD4oMJ/1ClVul1O1EeIUZJnyYAy3rsw=
359361
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
360362
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
361363
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
@@ -762,12 +764,10 @@ github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs
762764
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
763765
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
764766
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
765-
github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk=
766-
github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
767+
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
768+
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
767769
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
768770
github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
769-
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
770-
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
771771
github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
772772
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
773773
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
@@ -833,8 +833,8 @@ github.com/unrolled/secure v1.13.0 h1:sdr3Phw2+f8Px8HE5sd1EHdj1aV3yUwed/uZXChLFs
833833
github.com/unrolled/secure v1.13.0/go.mod h1:BmF5hyM6tXczk3MpQkFf1hpKSRqCyhqcbiQtiAF7+40=
834834
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
835835
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
836-
github.com/valyala/fasthttp v1.47.0 h1:y7moDoxYzMooFpT5aHgNgVOQDrS3qlkfiP9mDtGGK9c=
837-
github.com/valyala/fasthttp v1.47.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
836+
github.com/valyala/fasthttp v1.48.0 h1:oJWvHb9BIZToTQS3MuQ2R3bJZiNSa2KiNdeI8A+79Tc=
837+
github.com/valyala/fasthttp v1.48.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
838838
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
839839
github.com/vishvananda/netlink v1.1.1-0.20211118161826-650dca95af54 h1:8mhqcHPqTMhSPoslhGYihEgSfc77+7La1P6kiB6+9So=
840840
github.com/vishvananda/netlink v1.1.1-0.20211118161826-650dca95af54/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
@@ -933,9 +933,9 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm
933933
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
934934
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
935935
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
936-
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
937936
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
938937
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
938+
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
939939
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
940940
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
941941
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1024,8 +1024,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
10241024
golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
10251025
golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
10261026
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
1027-
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
1028-
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
1027+
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
1028+
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
10291029
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
10301030
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
10311031
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1036,8 +1036,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ
10361036
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
10371037
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
10381038
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1039-
golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
1040-
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
1039+
golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs=
1040+
golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw=
10411041
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10421042
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10431043
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1052,8 +1052,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
10521052
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10531053
golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10541054
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1055-
golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
1056-
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1055+
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
1056+
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
10571057
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
10581058
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
10591059
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1215,8 +1215,8 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
12151215
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
12161216
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
12171217
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
1218-
golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
1219-
golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
1218+
golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
1219+
golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
12201220
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
12211221
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
12221222
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

provisioner/terraform/resources.go

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package terraform
22

33
import (
44
"fmt"
5+
"sort"
56
"strings"
67

78
"github.com/awalterschulze/gographviz"
@@ -723,29 +724,38 @@ func orderedRichParametersResources(tfResourcesRichParameters []*tfjson.StateRes
723724
return tfResourcesRichParameters
724725
}
725726

726-
ordered := make([]*tfjson.StateResource, len(orderedNames))
727-
for i, name := range orderedNames {
727+
var ordered []*tfjson.StateResource
728+
for _, name := range orderedNames {
728729
for _, resource := range tfResourcesRichParameters {
729730
if resource.Name == name {
730-
ordered[i] = resource
731+
ordered = append(ordered, resource)
731732
}
732733
}
733734
}
734735

735-
// There's an edge case possible for us to have a parameter name that isn't
736-
// present in the state, since the ordered names come statically from
737-
// parsing the Terraform file. We need to filter out the nil values if there
738-
// are any present.
739-
if len(tfResourcesRichParameters) != len(orderedNames) {
740-
nonNil := make([]*tfjson.StateResource, 0, len(ordered))
741-
for _, resource := range ordered {
742-
if resource != nil {
743-
nonNil = append(nonNil, resource)
736+
// Edge case: a parameter is present in an external module (Git repository, static files, etc.),
737+
// which can't be easily parsed to check the parameter order.
738+
// Those parameters will be prepended to the "ordered" list.
739+
var external []*tfjson.StateResource
740+
for _, resource := range tfResourcesRichParameters {
741+
isExternal := true
742+
for _, o := range ordered {
743+
if resource.Name == o.Name {
744+
isExternal = false
745+
break
744746
}
745747
}
746-
747-
ordered = nonNil
748+
if isExternal {
749+
external = append(external, resource)
750+
}
748751
}
749752

753+
if len(external) > 0 {
754+
sort.Slice(external, func(i, j int) bool {
755+
return external[i].Name < external[j].Name
756+
})
757+
758+
ordered = append(external, ordered...)
759+
}
750760
return ordered
751761
}

provisioner/terraform/resources_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,30 @@ func TestConvertResources(t *testing.T) {
318318
}},
319319
}},
320320
parameters: []*proto.RichParameter{{
321+
Name: "First parameter from child module",
322+
Type: "string",
323+
Description: "First parameter from child module",
324+
Mutable: true,
325+
DefaultValue: "abcdef",
326+
}, {
327+
Name: "Second parameter from child module",
328+
Type: "string",
329+
Description: "Second parameter from child module",
330+
Mutable: true,
331+
DefaultValue: "ghijkl",
332+
}, {
333+
Name: "First parameter from module",
334+
Type: "string",
335+
Description: "First parameter from module",
336+
Mutable: true,
337+
DefaultValue: "abcdef",
338+
}, {
339+
Name: "Second parameter from module",
340+
Type: "string",
341+
Description: "Second parameter from module",
342+
Mutable: true,
343+
DefaultValue: "ghijkl",
344+
}, {
321345
Name: "Example",
322346
Type: "string",
323347
Options: []*proto.RichParameterOption{{
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
version = "0.7.0"
6+
}
7+
docker = {
8+
source = "kreuzwerker/docker"
9+
version = "~> 2.22"
10+
}
11+
}
12+
}
13+
14+
data "coder_parameter" "child_first_parameter_from_module" {
15+
name = "First parameter from child module"
16+
mutable = true
17+
type = "string"
18+
description = "First parameter from child module"
19+
default = "abcdef"
20+
}
21+
22+
data "coder_parameter" "child_second_parameter_from_module" {
23+
name = "Second parameter from child module"
24+
mutable = true
25+
type = "string"
26+
description = "Second parameter from child module"
27+
default = "ghijkl"
28+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
version = "0.7.0"
6+
}
7+
docker = {
8+
source = "kreuzwerker/docker"
9+
version = "~> 2.22"
10+
}
11+
}
12+
}
13+
14+
module "this_is_external_child_module" {
15+
source = "./child-external-module"
16+
}
17+
18+
data "coder_parameter" "first_parameter_from_module" {
19+
name = "First parameter from module"
20+
mutable = true
21+
type = "string"
22+
description = "First parameter from module"
23+
default = "abcdef"
24+
}
25+
26+
data "coder_parameter" "second_parameter_from_module" {
27+
name = "Second parameter from module"
28+
mutable = true
29+
type = "string"
30+
description = "Second parameter from module"
31+
default = "ghijkl"
32+
}

provisioner/terraform/testdata/rich-parameters/rich-parameters.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ terraform {
77
}
88
}
99

10+
module "this_is_external_module" {
11+
source = "./external-module"
12+
}
13+
1014
data "coder_parameter" "sample" {
1115
name = "Sample"
1216
type = "string"

0 commit comments

Comments
 (0)