pulumi-docker-build 0.0.1a3__py3-none-any.whl → 0.0.1a101__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pulumi-docker-build might be problematic. Click here for more details.
- pulumi_docker_build/_inputs.py +835 -22
- pulumi_docker_build/_utilities.py +42 -6
- pulumi_docker_build/config/__init__.pyi +5 -0
- pulumi_docker_build/config/vars.py +5 -0
- pulumi_docker_build/image.py +363 -357
- pulumi_docker_build/index.py +98 -69
- pulumi_docker_build/outputs.py +11 -6
- pulumi_docker_build/provider.py +7 -2
- pulumi_docker_build/pulumi-plugin.json +1 -1
- pulumi_docker_build-0.0.1a101.dist-info/METADATA +38 -0
- pulumi_docker_build-0.0.1a101.dist-info/RECORD +17 -0
- {pulumi_docker_build-0.0.1a3.dist-info → pulumi_docker_build-0.0.1a101.dist-info}/WHEEL +1 -1
- pulumi_docker_build-0.0.1a3.dist-info/METADATA +0 -120
- pulumi_docker_build-0.0.1a3.dist-info/RECORD +0 -17
- {pulumi_docker_build-0.0.1a3.dist-info → pulumi_docker_build-0.0.1a101.dist-info}/top_level.txt +0 -0
pulumi_docker_build/index.py
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
10
15
|
from . import _utilities
|
|
11
16
|
from . import outputs
|
|
12
17
|
from ._inputs import *
|
|
@@ -99,18 +104,30 @@ class Index(pulumi.CustomResource):
|
|
|
99
104
|
resource_name: str,
|
|
100
105
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
101
106
|
push: Optional[pulumi.Input[bool]] = None,
|
|
102
|
-
registry: Optional[pulumi.Input[
|
|
107
|
+
registry: Optional[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
|
|
103
108
|
sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
104
109
|
tag: Optional[pulumi.Input[str]] = None,
|
|
105
110
|
__props__=None):
|
|
106
111
|
"""
|
|
107
|
-
|
|
112
|
+
A wrapper around `docker buildx imagetools create` to create an index
|
|
113
|
+
(or manifest list) referencing one or more existing images.
|
|
108
114
|
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
In most cases you do not need an `Index` to build a multi-platform
|
|
116
|
+
image -- specifying multiple platforms on the `Image` will handle this
|
|
117
|
+
for you automatically.
|
|
111
118
|
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
However, as of April 2024, building multi-platform images _with
|
|
120
|
+
caching_ will only export a cache for one platform at a time (see [this
|
|
121
|
+
discussion](https://github.com/docker/buildx/discussions/1382) for more
|
|
122
|
+
details).
|
|
123
|
+
|
|
124
|
+
Therefore this resource can be helpful if you are building
|
|
125
|
+
multi-platform images with caching: each platform can be built and
|
|
126
|
+
cached separately, and an `Index` can join them all together. An
|
|
127
|
+
example of this is shown below.
|
|
128
|
+
|
|
129
|
+
This resource creates an OCI image index or a Docker manifest list
|
|
130
|
+
depending on the media types of the source images.
|
|
114
131
|
|
|
115
132
|
## Example Usage
|
|
116
133
|
### Multi-platform registry caching
|
|
@@ -119,37 +136,37 @@ class Index(pulumi.CustomResource):
|
|
|
119
136
|
import pulumi_docker_build as docker_build
|
|
120
137
|
|
|
121
138
|
amd64 = docker_build.Image("amd64",
|
|
122
|
-
cache_from=[
|
|
123
|
-
registry
|
|
124
|
-
ref
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
cache_to=[
|
|
128
|
-
registry
|
|
129
|
-
mode
|
|
130
|
-
ref
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
context=
|
|
134
|
-
location
|
|
135
|
-
|
|
139
|
+
cache_from=[{
|
|
140
|
+
"registry": {
|
|
141
|
+
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
|
142
|
+
},
|
|
143
|
+
}],
|
|
144
|
+
cache_to=[{
|
|
145
|
+
"registry": {
|
|
146
|
+
"mode": docker_build.CacheMode.MAX,
|
|
147
|
+
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
|
148
|
+
},
|
|
149
|
+
}],
|
|
150
|
+
context={
|
|
151
|
+
"location": "app",
|
|
152
|
+
},
|
|
136
153
|
platforms=[docker_build.Platform.LINUX_AMD64],
|
|
137
154
|
tags=["docker.io/pulumi/pulumi:3.107.0-amd64"])
|
|
138
155
|
arm64 = docker_build.Image("arm64",
|
|
139
|
-
cache_from=[
|
|
140
|
-
registry
|
|
141
|
-
ref
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
cache_to=[
|
|
145
|
-
registry
|
|
146
|
-
mode
|
|
147
|
-
ref
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
context=
|
|
151
|
-
location
|
|
152
|
-
|
|
156
|
+
cache_from=[{
|
|
157
|
+
"registry": {
|
|
158
|
+
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
|
159
|
+
},
|
|
160
|
+
}],
|
|
161
|
+
cache_to=[{
|
|
162
|
+
"registry": {
|
|
163
|
+
"mode": docker_build.CacheMode.MAX,
|
|
164
|
+
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
|
165
|
+
},
|
|
166
|
+
}],
|
|
167
|
+
context={
|
|
168
|
+
"location": "app",
|
|
169
|
+
},
|
|
153
170
|
platforms=[docker_build.Platform.LINUX_ARM64],
|
|
154
171
|
tags=["docker.io/pulumi/pulumi:3.107.0-arm64"])
|
|
155
172
|
index = docker_build.Index("index",
|
|
@@ -166,7 +183,7 @@ class Index(pulumi.CustomResource):
|
|
|
166
183
|
:param pulumi.Input[bool] push: If true, push the index to the target registry.
|
|
167
184
|
|
|
168
185
|
Defaults to `true`.
|
|
169
|
-
:param pulumi.Input[
|
|
186
|
+
:param pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']] registry: Authentication for the registry where the tagged index will be pushed.
|
|
170
187
|
|
|
171
188
|
Credentials can also be included with the provider's configuration.
|
|
172
189
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] sources: Existing images to include in the index.
|
|
@@ -179,13 +196,25 @@ class Index(pulumi.CustomResource):
|
|
|
179
196
|
args: IndexArgs,
|
|
180
197
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
181
198
|
"""
|
|
182
|
-
|
|
199
|
+
A wrapper around `docker buildx imagetools create` to create an index
|
|
200
|
+
(or manifest list) referencing one or more existing images.
|
|
201
|
+
|
|
202
|
+
In most cases you do not need an `Index` to build a multi-platform
|
|
203
|
+
image -- specifying multiple platforms on the `Image` will handle this
|
|
204
|
+
for you automatically.
|
|
205
|
+
|
|
206
|
+
However, as of April 2024, building multi-platform images _with
|
|
207
|
+
caching_ will only export a cache for one platform at a time (see [this
|
|
208
|
+
discussion](https://github.com/docker/buildx/discussions/1382) for more
|
|
209
|
+
details).
|
|
183
210
|
|
|
184
|
-
|
|
185
|
-
platform
|
|
211
|
+
Therefore this resource can be helpful if you are building
|
|
212
|
+
multi-platform images with caching: each platform can be built and
|
|
213
|
+
cached separately, and an `Index` can join them all together. An
|
|
214
|
+
example of this is shown below.
|
|
186
215
|
|
|
187
|
-
This creates an OCI image index or a Docker manifest list
|
|
188
|
-
the media types of the source images.
|
|
216
|
+
This resource creates an OCI image index or a Docker manifest list
|
|
217
|
+
depending on the media types of the source images.
|
|
189
218
|
|
|
190
219
|
## Example Usage
|
|
191
220
|
### Multi-platform registry caching
|
|
@@ -194,37 +223,37 @@ class Index(pulumi.CustomResource):
|
|
|
194
223
|
import pulumi_docker_build as docker_build
|
|
195
224
|
|
|
196
225
|
amd64 = docker_build.Image("amd64",
|
|
197
|
-
cache_from=[
|
|
198
|
-
registry
|
|
199
|
-
ref
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
cache_to=[
|
|
203
|
-
registry
|
|
204
|
-
mode
|
|
205
|
-
ref
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
context=
|
|
209
|
-
location
|
|
210
|
-
|
|
226
|
+
cache_from=[{
|
|
227
|
+
"registry": {
|
|
228
|
+
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
|
229
|
+
},
|
|
230
|
+
}],
|
|
231
|
+
cache_to=[{
|
|
232
|
+
"registry": {
|
|
233
|
+
"mode": docker_build.CacheMode.MAX,
|
|
234
|
+
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
|
235
|
+
},
|
|
236
|
+
}],
|
|
237
|
+
context={
|
|
238
|
+
"location": "app",
|
|
239
|
+
},
|
|
211
240
|
platforms=[docker_build.Platform.LINUX_AMD64],
|
|
212
241
|
tags=["docker.io/pulumi/pulumi:3.107.0-amd64"])
|
|
213
242
|
arm64 = docker_build.Image("arm64",
|
|
214
|
-
cache_from=[
|
|
215
|
-
registry
|
|
216
|
-
ref
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
cache_to=[
|
|
220
|
-
registry
|
|
221
|
-
mode
|
|
222
|
-
ref
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
context=
|
|
226
|
-
location
|
|
227
|
-
|
|
243
|
+
cache_from=[{
|
|
244
|
+
"registry": {
|
|
245
|
+
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
|
246
|
+
},
|
|
247
|
+
}],
|
|
248
|
+
cache_to=[{
|
|
249
|
+
"registry": {
|
|
250
|
+
"mode": docker_build.CacheMode.MAX,
|
|
251
|
+
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
|
252
|
+
},
|
|
253
|
+
}],
|
|
254
|
+
context={
|
|
255
|
+
"location": "app",
|
|
256
|
+
},
|
|
228
257
|
platforms=[docker_build.Platform.LINUX_ARM64],
|
|
229
258
|
tags=["docker.io/pulumi/pulumi:3.107.0-arm64"])
|
|
230
259
|
index = docker_build.Index("index",
|
|
@@ -252,7 +281,7 @@ class Index(pulumi.CustomResource):
|
|
|
252
281
|
resource_name: str,
|
|
253
282
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
254
283
|
push: Optional[pulumi.Input[bool]] = None,
|
|
255
|
-
registry: Optional[pulumi.Input[
|
|
284
|
+
registry: Optional[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
|
|
256
285
|
sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
257
286
|
tag: Optional[pulumi.Input[str]] = None,
|
|
258
287
|
__props__=None):
|
pulumi_docker_build/outputs.py
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
10
15
|
from . import _utilities
|
|
11
16
|
from . import outputs
|
|
12
17
|
from ._enums import *
|
|
@@ -305,7 +310,7 @@ class CacheFromGitHubActions(dict):
|
|
|
305
310
|
environment variable to your jobs.
|
|
306
311
|
:param str url: The cache server URL to use for artifacts.
|
|
307
312
|
|
|
308
|
-
Defaults to `$
|
|
313
|
+
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
|
309
314
|
`crazy-max/ghaction-github-runtime` is recommended to expose this
|
|
310
315
|
environment variable to your jobs.
|
|
311
316
|
"""
|
|
@@ -318,7 +323,7 @@ class CacheFromGitHubActions(dict):
|
|
|
318
323
|
if token is not None:
|
|
319
324
|
pulumi.set(__self__, "token", token)
|
|
320
325
|
if url is None:
|
|
321
|
-
url = (_utilities.get_env('
|
|
326
|
+
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
|
|
322
327
|
if url is not None:
|
|
323
328
|
pulumi.set(__self__, "url", url)
|
|
324
329
|
|
|
@@ -352,7 +357,7 @@ class CacheFromGitHubActions(dict):
|
|
|
352
357
|
"""
|
|
353
358
|
The cache server URL to use for artifacts.
|
|
354
359
|
|
|
355
|
-
Defaults to `$
|
|
360
|
+
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
|
356
361
|
`crazy-max/ghaction-github-runtime` is recommended to expose this
|
|
357
362
|
environment variable to your jobs.
|
|
358
363
|
"""
|
|
@@ -817,7 +822,7 @@ class CacheToGitHubActions(dict):
|
|
|
817
822
|
environment variable to your jobs.
|
|
818
823
|
:param str url: The cache server URL to use for artifacts.
|
|
819
824
|
|
|
820
|
-
Defaults to `$
|
|
825
|
+
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
|
821
826
|
`crazy-max/ghaction-github-runtime` is recommended to expose this
|
|
822
827
|
environment variable to your jobs.
|
|
823
828
|
"""
|
|
@@ -838,7 +843,7 @@ class CacheToGitHubActions(dict):
|
|
|
838
843
|
if token is not None:
|
|
839
844
|
pulumi.set(__self__, "token", token)
|
|
840
845
|
if url is None:
|
|
841
|
-
url = (_utilities.get_env('
|
|
846
|
+
url = (_utilities.get_env('ACTIONS_CACHE_URL') or '')
|
|
842
847
|
if url is not None:
|
|
843
848
|
pulumi.set(__self__, "url", url)
|
|
844
849
|
|
|
@@ -888,7 +893,7 @@ class CacheToGitHubActions(dict):
|
|
|
888
893
|
"""
|
|
889
894
|
The cache server URL to use for artifacts.
|
|
890
895
|
|
|
891
|
-
Defaults to `$
|
|
896
|
+
Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
|
892
897
|
`crazy-max/ghaction-github-runtime` is recommended to expose this
|
|
893
898
|
environment variable to your jobs.
|
|
894
899
|
"""
|
pulumi_docker_build/provider.py
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
10
15
|
from . import _utilities
|
|
11
16
|
from ._inputs import *
|
|
12
17
|
|
|
@@ -56,7 +61,7 @@ class Provider(pulumi.ProviderResource):
|
|
|
56
61
|
resource_name: str,
|
|
57
62
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
58
63
|
host: Optional[pulumi.Input[str]] = None,
|
|
59
|
-
registries: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
64
|
+
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
|
|
60
65
|
__props__=None):
|
|
61
66
|
"""
|
|
62
67
|
Create a Docker-build resource with the given unique name, props, and options.
|
|
@@ -88,7 +93,7 @@ class Provider(pulumi.ProviderResource):
|
|
|
88
93
|
resource_name: str,
|
|
89
94
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
90
95
|
host: Optional[pulumi.Input[str]] = None,
|
|
91
|
-
registries: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
96
|
+
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
|
|
92
97
|
__props__=None):
|
|
93
98
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
94
99
|
if not isinstance(opts, pulumi.ResourceOptions):
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: pulumi_docker_build
|
|
3
|
+
Version: 0.0.1a101
|
|
4
|
+
Summary: A Pulumi provider for building modern Docker images with buildx and BuildKit.
|
|
5
|
+
License: Apache-2.0
|
|
6
|
+
Project-URL: Homepage, https://pulumi.com
|
|
7
|
+
Project-URL: Repository, https://github.com/pulumi/pulumi-docker-build
|
|
8
|
+
Keywords: docker,buildkit,buildx,kind/native
|
|
9
|
+
Requires-Python: >=3.9
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
Requires-Dist: parver>=0.2.1
|
|
12
|
+
Requires-Dist: pulumi<4.0.0,>=3.142.0
|
|
13
|
+
Requires-Dist: semver>=2.8.1
|
|
14
|
+
Requires-Dist: typing-extensions>=4.11; python_version < "3.11"
|
|
15
|
+
|
|
16
|
+
[](https://slack.pulumi.com)
|
|
17
|
+
[](https://www.npmjs.com/package/@pulumi/docker-build)
|
|
18
|
+
[](https://pypi.org/project/pulumi-docker-build)
|
|
19
|
+
[](https://badge.fury.io/nu/pulumi.dockerbuild)
|
|
20
|
+
[](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
|
|
21
|
+
[](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
|
|
22
|
+
|
|
23
|
+
# Docker-Build Resource Provider
|
|
24
|
+
|
|
25
|
+
A [Pulumi](http://pulumi.com) provider for building modern Docker images with [buildx](https://docs.docker.com/build/architecture/) and [BuildKit](https://docs.docker.com/build/buildkit/).
|
|
26
|
+
|
|
27
|
+
Not to be confused with the earlier
|
|
28
|
+
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
|
|
29
|
+
appropriate for managing resources unrelated to building images.
|
|
30
|
+
|
|
31
|
+
| Provider | Use cases |
|
|
32
|
+
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
|
|
34
|
+
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
|
|
35
|
+
|
|
36
|
+
## Reference
|
|
37
|
+
|
|
38
|
+
For more information, including examples and migration guidance, please see the Docker-Build provider's detailed [API documentation](https://www.pulumi.com/registry/packages/docker-build/).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
pulumi_docker_build/__init__.py,sha256=jbA6SMpisvwJDycUKuo4IXVJ5_qjIao_1iPP9lcZ-Vw,983
|
|
2
|
+
pulumi_docker_build/_enums.py,sha256=yfsDmimBobvf70zx6VAR_6ABp50Dan452rpIFVs8jkA,1928
|
|
3
|
+
pulumi_docker_build/_inputs.py,sha256=aXJ4xqK0KBLf6vQWsqsnYM1yqSHfaB64nv-Vcp6_4Og,124044
|
|
4
|
+
pulumi_docker_build/_utilities.py,sha256=UL5vEmfNrBfiaeFQS69cz7xlHoBnPH8PY_UIVNwShcM,10486
|
|
5
|
+
pulumi_docker_build/image.py,sha256=5Zd6zmfsQUCVFogp6Wu-5RceMxkl0x_nuOG64fO7ZWg,74877
|
|
6
|
+
pulumi_docker_build/index.py,sha256=IMpevb9_ktXNcgF17qMAq-Dh15HC4HZbKp0A62faoEw,14291
|
|
7
|
+
pulumi_docker_build/outputs.py,sha256=F-PATYfU3BD0f0PEdGsaWMYSthp698pgX0LH8Mfk9lU,83415
|
|
8
|
+
pulumi_docker_build/provider.py,sha256=ds0_lPqQ0LuP9fsHLUHg6IvolD4fIBnU3oife3038x4,4972
|
|
9
|
+
pulumi_docker_build/pulumi-plugin.json,sha256=4_O2nNDprbGE2uVLuQbzEvuZMO8_G9paVQSfK7O8nv8,81
|
|
10
|
+
pulumi_docker_build/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
pulumi_docker_build/config/__init__.py,sha256=YdGLR92OvYD0CYDgt_FTaHJOb_VzW8fto_Cgx6fLd3k,267
|
|
12
|
+
pulumi_docker_build/config/__init__.pyi,sha256=2Yij9qLlwh_pi5ytfw8UgvI4KgmE-OC2fNuRQzFrKgk,615
|
|
13
|
+
pulumi_docker_build/config/vars.py,sha256=IeckzaS3wTGp0HlnJtyacWm2u7rm150AuK9jv6r9pGY,930
|
|
14
|
+
pulumi_docker_build-0.0.1a101.dist-info/METADATA,sha256=BGtS-jaJEkXvL6oasQaH_gEa9R49UgX01HGcrt5T2uc,2613
|
|
15
|
+
pulumi_docker_build-0.0.1a101.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
16
|
+
pulumi_docker_build-0.0.1a101.dist-info/top_level.txt,sha256=-O-MiPQ61mhil3wD9QdYf8yA4r5vNPmBgSGdi9cOQ18,20
|
|
17
|
+
pulumi_docker_build-0.0.1a101.dist-info/RECORD,,
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: pulumi_docker_build
|
|
3
|
-
Version: 0.0.1a3
|
|
4
|
-
Summary: A Pulumi provider for Docker buildx
|
|
5
|
-
License: Apache-2.0
|
|
6
|
-
Project-URL: Homepage, https://pulumi.io
|
|
7
|
-
Project-URL: Repository, https://github.com/pulumi/pulumi-docker-build
|
|
8
|
-
Keywords: docker,buildkit,buildx
|
|
9
|
-
Requires-Python: >=3.8
|
|
10
|
-
Description-Content-Type: text/markdown
|
|
11
|
-
Requires-Dist: parver >=0.2.1
|
|
12
|
-
Requires-Dist: pulumi <4.0.0,>=3.0.0
|
|
13
|
-
Requires-Dist: semver >=2.8.1
|
|
14
|
-
|
|
15
|
-
# Pulumi Native Provider Boilerplate
|
|
16
|
-
|
|
17
|
-
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
|
|
18
|
-
|
|
19
|
-
## Authoring a Pulumi Native Provider
|
|
20
|
-
|
|
21
|
-
This boilerplate creates a working Pulumi-owned provider named `xyz`.
|
|
22
|
-
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### Prerequisites
|
|
26
|
-
|
|
27
|
-
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
|
|
28
|
-
|
|
29
|
-
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
|
|
30
|
-
|
|
31
|
-
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
|
|
32
|
-
* [Go 1.21](https://golang.org/dl/) or 1.latest
|
|
33
|
-
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
|
|
34
|
-
* [Yarn](https://yarnpkg.com/)
|
|
35
|
-
* [TypeScript](https://www.typescriptlang.org/)
|
|
36
|
-
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
|
|
37
|
-
* [.NET](https://dotnet.microsoft.com/download)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
### Build & test the boilerplate XYZ provider
|
|
41
|
-
|
|
42
|
-
1. Create a new Github CodeSpaces environment using this repository.
|
|
43
|
-
1. Open a terminal in the CodeSpaces environment.
|
|
44
|
-
1. Run `make build install` to build and install the provider.
|
|
45
|
-
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
|
|
46
|
-
1. Run `make up` to run the example program in `examples/yaml`.
|
|
47
|
-
1. Run `make down` to tear down the example program.
|
|
48
|
-
|
|
49
|
-
### Creating a new provider repository
|
|
50
|
-
|
|
51
|
-
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
|
|
52
|
-
|
|
53
|
-
1. Click "Use this template".
|
|
54
|
-
1. Set the following options:
|
|
55
|
-
* Owner: pulumi
|
|
56
|
-
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
|
|
57
|
-
* Description: Pulumi provider for xyz
|
|
58
|
-
* Repository type: Public
|
|
59
|
-
1. Clone the generated repository.
|
|
60
|
-
|
|
61
|
-
From the templated repository:
|
|
62
|
-
|
|
63
|
-
1. Search-replace `xyz` with the name of your desired provider.
|
|
64
|
-
|
|
65
|
-
#### Build the provider and install the plugin
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
$ make build install
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
This will:
|
|
72
|
-
|
|
73
|
-
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
|
|
74
|
-
2. Create the provider binary and place it in the `./bin` folder (gitignored)
|
|
75
|
-
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
|
|
76
|
-
4. Install the provider on your machine.
|
|
77
|
-
|
|
78
|
-
#### Test against the example
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
$ cd examples/simple
|
|
82
|
-
$ yarn link @pulumi/xyz
|
|
83
|
-
$ yarn install
|
|
84
|
-
$ pulumi stack init test
|
|
85
|
-
$ pulumi up
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
|
|
89
|
-
|
|
90
|
-
#### A brief repository overview
|
|
91
|
-
|
|
92
|
-
You now have:
|
|
93
|
-
|
|
94
|
-
1. A `provider/` folder containing the building and implementation logic
|
|
95
|
-
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
|
|
96
|
-
2. `deployment-templates` - a set of files to help you around deployment and publication
|
|
97
|
-
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
|
|
98
|
-
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
|
|
99
|
-
5. A `Makefile` and this `README`.
|
|
100
|
-
|
|
101
|
-
#### Additional Details
|
|
102
|
-
|
|
103
|
-
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
|
|
104
|
-
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
|
|
105
|
-
|
|
106
|
-
### Build Examples
|
|
107
|
-
|
|
108
|
-
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
|
|
109
|
-
|
|
110
|
-
You can now repeat the steps for [build, install, and test](#test-against-the-example).
|
|
111
|
-
|
|
112
|
-
## Configuring CI and releases
|
|
113
|
-
|
|
114
|
-
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
|
|
115
|
-
|
|
116
|
-
## References
|
|
117
|
-
|
|
118
|
-
Other resources/examples for implementing providers:
|
|
119
|
-
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
|
|
120
|
-
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
pulumi_docker_build/__init__.py,sha256=jbA6SMpisvwJDycUKuo4IXVJ5_qjIao_1iPP9lcZ-Vw,983
|
|
2
|
-
pulumi_docker_build/_enums.py,sha256=yfsDmimBobvf70zx6VAR_6ABp50Dan452rpIFVs8jkA,1928
|
|
3
|
-
pulumi_docker_build/_inputs.py,sha256=L_v8wgNW_tjfh4caAatNqLUzqJwmPRbFSFFXrAs0h88,97964
|
|
4
|
-
pulumi_docker_build/_utilities.py,sha256=rA8XvgybOPKFzEaIJx85muKv85tzLL5lEBQ58eVLEzs,9265
|
|
5
|
-
pulumi_docker_build/image.py,sha256=AXN-kxI63aLrYFwbwTYjIuRf8XiPaC-YDtmh7jmqUpo,76626
|
|
6
|
-
pulumi_docker_build/index.py,sha256=KHTpB_4i7e3b2no1batLV7KyhYJrWUj-bEdKh9VEYYQ,13254
|
|
7
|
-
pulumi_docker_build/outputs.py,sha256=l9VIy-AMXUdQffKVpYcR-KCdtc7huWQ2qCDhv_hgHVs,83253
|
|
8
|
-
pulumi_docker_build/provider.py,sha256=5f1FtyHXjxcCA3nouMG5HVJyrBEdCB452ezcNt53NmQ,4780
|
|
9
|
-
pulumi_docker_build/pulumi-plugin.json,sha256=aNWnPPkTjPtNuWio8hIVyGOPhfmTF0knTyxRragQ0dQ,102
|
|
10
|
-
pulumi_docker_build/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
pulumi_docker_build/config/__init__.py,sha256=YdGLR92OvYD0CYDgt_FTaHJOb_VzW8fto_Cgx6fLd3k,267
|
|
12
|
-
pulumi_docker_build/config/__init__.pyi,sha256=2lJs0q5nxrEi63kCCpe7M23-j-0NiQu9UpKaYAWe5TM,441
|
|
13
|
-
pulumi_docker_build/config/vars.py,sha256=6g1SHA-v-YBMxDX9KwlhaZZ3Yk7DzC5_EB2xz0FQiKo,756
|
|
14
|
-
pulumi_docker_build-0.0.1a3.dist-info/METADATA,sha256=IeBXqw170V8JSN9pgBeD4VtD4Gp2rW0_bgDB6WLEIi0,4791
|
|
15
|
-
pulumi_docker_build-0.0.1a3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
16
|
-
pulumi_docker_build-0.0.1a3.dist-info/top_level.txt,sha256=-O-MiPQ61mhil3wD9QdYf8yA4r5vNPmBgSGdi9cOQ18,20
|
|
17
|
-
pulumi_docker_build-0.0.1a3.dist-info/RECORD,,
|
{pulumi_docker_build-0.0.1a3.dist-info → pulumi_docker_build-0.0.1a101.dist-info}/top_level.txt
RENAMED
|
File without changes
|