pulumi-docker-build 0.0.1__py3-none-any.whl → 0.0.1a3__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.

@@ -288,4 +288,4 @@ async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bo
288
288
  )
289
289
 
290
290
  def get_plugin_download_url():
291
- return None
291
+ return "github.com/pulumi/pulumi-docker-build"
@@ -53,17 +53,20 @@ class ImageArgs:
53
53
  if these arguments are sensitive.
54
54
 
55
55
  Equivalent to Docker's `--build-arg` flag.
56
- :param pulumi.Input[bool] build_on_preview: Setting this to `false` will always skip image builds during previews,
57
- and setting it to `true` will always build images during previews.
56
+ :param pulumi.Input[bool] build_on_preview: By default, preview behavior depends on the execution environment. If
57
+ Pulumi detects the operation is running on a CI system (GitHub Actions,
58
+ Travis CI, Azure Pipelines, etc.) then it will build images during
59
+ previews as a safeguard. Otherwise, if not running on CI, previews will
60
+ not build images.
61
+
62
+ Setting this to `false` forces previews to never perform builds, and
63
+ setting it to `true` will always build the image during previews.
58
64
 
59
65
  Images built during previews are never exported to registries, however
60
66
  cache manifests are still exported.
61
67
 
62
68
  On-disk Dockerfiles are always validated for syntactic correctness
63
69
  regardless of this setting.
64
-
65
- Defaults to `true` as a safeguard against broken images merging as part
66
- of CI pipelines.
67
70
  :param pulumi.Input['BuilderConfigArgs'] builder: Builder configuration.
68
71
  :param pulumi.Input[Sequence[pulumi.Input['CacheFromArgs']]] cache_from: Cache export configuration.
69
72
 
@@ -168,8 +171,6 @@ class ImageArgs:
168
171
  pulumi.set(__self__, "add_hosts", add_hosts)
169
172
  if build_args is not None:
170
173
  pulumi.set(__self__, "build_args", build_args)
171
- if build_on_preview is None:
172
- build_on_preview = True
173
174
  if build_on_preview is not None:
174
175
  pulumi.set(__self__, "build_on_preview", build_on_preview)
175
176
  if builder is not None:
@@ -251,17 +252,20 @@ class ImageArgs:
251
252
  @pulumi.getter(name="buildOnPreview")
252
253
  def build_on_preview(self) -> Optional[pulumi.Input[bool]]:
253
254
  """
254
- Setting this to `false` will always skip image builds during previews,
255
- and setting it to `true` will always build images during previews.
255
+ By default, preview behavior depends on the execution environment. If
256
+ Pulumi detects the operation is running on a CI system (GitHub Actions,
257
+ Travis CI, Azure Pipelines, etc.) then it will build images during
258
+ previews as a safeguard. Otherwise, if not running on CI, previews will
259
+ not build images.
260
+
261
+ Setting this to `false` forces previews to never perform builds, and
262
+ setting it to `true` will always build the image during previews.
256
263
 
257
264
  Images built during previews are never exported to registries, however
258
265
  cache manifests are still exported.
259
266
 
260
267
  On-disk Dockerfiles are always validated for syntactic correctness
261
268
  regardless of this setting.
262
-
263
- Defaults to `true` as a safeguard against broken images merging as part
264
- of CI pipelines.
265
269
  """
266
270
  return pulumi.get(self, "build_on_preview")
267
271
 
@@ -612,14 +616,20 @@ class Image(pulumi.CustomResource):
612
616
 
613
617
  ## Stability
614
618
 
615
- **This resource is pre-1.0 and in public preview.**
619
+ **This resource is experimental and subject to change.**
620
+
621
+ API types are unstable. Subsequent releases _may_ require manual edits
622
+ to your state file(s) in order to adopt API changes.
623
+
624
+ `retainOnDelete: true` is recommended with this resource until it is
625
+ stable. This enables future API changes to be adopted more easily by renaming
626
+ resources.
616
627
 
617
- We will strive to keep APIs and behavior as stable as possible, but we
618
- cannot guarantee stability until version 1.0.
628
+ Only use this resource if you understand and accept the risks.
619
629
 
620
- ## Migrating Pulumi Docker v3 and v4 Image resources
630
+ ## Migrating v3 and v4 Image resources
621
631
 
622
- This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
632
+ The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
623
633
  Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
624
634
 
625
635
  ### Behavioral differences
@@ -633,17 +643,19 @@ class Image(pulumi.CustomResource):
633
643
 
634
644
  Version `4.x` changed build-on-preview behavior to be opt-in.
635
645
  By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
636
- Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
646
+ Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
637
647
 
638
- The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
639
- This behavior can be changed by specifying `buildOnPreview`.
648
+ The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
649
+ By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
650
+ Previews run in non-CI environments will not build images.
651
+ This behavior is still configurable with `buildOnPreview`.
640
652
 
641
653
  #### Push behavior
642
654
 
643
655
  Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
644
656
  They expose a `skipPush: true` option to disable pushing.
645
657
 
646
- This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
658
+ The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
647
659
 
648
660
  To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
649
661
  Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -714,28 +726,28 @@ class Image(pulumi.CustomResource):
714
726
  ```python
715
727
  import pulumi
716
728
  import pulumi_aws as aws
717
- import pulumi_docker_build as docker_build
729
+ import pulumi_dockerbuild as dockerbuild
718
730
 
719
731
  ecr_repository = aws.ecr.Repository("ecr-repository")
720
732
  auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
721
- my_image = docker_build.Image("my-image",
722
- cache_from=[docker_build.CacheFromArgs(
723
- registry=docker_build.CacheFromRegistryArgs(
733
+ my_image = dockerbuild.Image("my-image",
734
+ cache_from=[dockerbuild.CacheFromArgs(
735
+ registry=dockerbuild.CacheFromRegistryArgs(
724
736
  ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
725
737
  ),
726
738
  )],
727
- cache_to=[docker_build.CacheToArgs(
728
- registry=docker_build.CacheToRegistryArgs(
739
+ cache_to=[dockerbuild.CacheToArgs(
740
+ registry=dockerbuild.CacheToRegistryArgs(
729
741
  image_manifest=True,
730
742
  oci_media_types=True,
731
743
  ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
732
744
  ),
733
745
  )],
734
- context=docker_build.BuildContextArgs(
746
+ context=dockerbuild.BuildContextArgs(
735
747
  location="./app",
736
748
  ),
737
749
  push=True,
738
- registries=[docker_build.RegistryArgs(
750
+ registries=[dockerbuild.RegistryArgs(
739
751
  address=ecr_repository.repository_url,
740
752
  password=auth_token.password,
741
753
  username=auth_token.user_name,
@@ -746,28 +758,28 @@ class Image(pulumi.CustomResource):
746
758
  ### Multi-platform image
747
759
  ```python
748
760
  import pulumi
749
- import pulumi_docker_build as docker_build
761
+ import pulumi_dockerbuild as dockerbuild
750
762
 
751
- image = docker_build.Image("image",
752
- context=docker_build.BuildContextArgs(
763
+ image = dockerbuild.Image("image",
764
+ context=dockerbuild.BuildContextArgs(
753
765
  location="app",
754
766
  ),
755
767
  platforms=[
756
- docker_build.Platform.PLAN9_AMD64,
757
- docker_build.Platform.PLAN9_386,
768
+ dockerbuild.Platform.PLAN9_AMD64,
769
+ dockerbuild.Platform.PLAN9_386,
758
770
  ])
759
771
  ```
760
772
  ### Registry export
761
773
  ```python
762
774
  import pulumi
763
- import pulumi_docker_build as docker_build
775
+ import pulumi_dockerbuild as dockerbuild
764
776
 
765
- image = docker_build.Image("image",
766
- context=docker_build.BuildContextArgs(
777
+ image = dockerbuild.Image("image",
778
+ context=dockerbuild.BuildContextArgs(
767
779
  location="app",
768
780
  ),
769
781
  push=True,
770
- registries=[docker_build.RegistryArgs(
782
+ registries=[dockerbuild.RegistryArgs(
771
783
  address="docker.io",
772
784
  password=docker_hub_password,
773
785
  username="pulumibot",
@@ -778,34 +790,34 @@ class Image(pulumi.CustomResource):
778
790
  ### Caching
779
791
  ```python
780
792
  import pulumi
781
- import pulumi_docker_build as docker_build
793
+ import pulumi_dockerbuild as dockerbuild
782
794
 
783
- image = docker_build.Image("image",
784
- cache_from=[docker_build.CacheFromArgs(
785
- local=docker_build.CacheFromLocalArgs(
795
+ image = dockerbuild.Image("image",
796
+ cache_from=[dockerbuild.CacheFromArgs(
797
+ local=dockerbuild.CacheFromLocalArgs(
786
798
  src="tmp/cache",
787
799
  ),
788
800
  )],
789
- cache_to=[docker_build.CacheToArgs(
790
- local=docker_build.CacheToLocalArgs(
801
+ cache_to=[dockerbuild.CacheToArgs(
802
+ local=dockerbuild.CacheToLocalArgs(
791
803
  dest="tmp/cache",
792
- mode=docker_build.CacheMode.MAX,
804
+ mode=dockerbuild.CacheMode.MAX,
793
805
  ),
794
806
  )],
795
- context=docker_build.BuildContextArgs(
807
+ context=dockerbuild.BuildContextArgs(
796
808
  location="app",
797
809
  ))
798
810
  ```
799
811
  ### Docker Build Cloud
800
812
  ```python
801
813
  import pulumi
802
- import pulumi_docker_build as docker_build
814
+ import pulumi_dockerbuild as dockerbuild
803
815
 
804
- image = docker_build.Image("image",
805
- builder=docker_build.BuilderConfigArgs(
816
+ image = dockerbuild.Image("image",
817
+ builder=dockerbuild.BuilderConfigArgs(
806
818
  name="cloud-builder-name",
807
819
  ),
808
- context=docker_build.BuildContextArgs(
820
+ context=dockerbuild.BuildContextArgs(
809
821
  location="app",
810
822
  ),
811
823
  exec_=True)
@@ -813,23 +825,23 @@ class Image(pulumi.CustomResource):
813
825
  ### Build arguments
814
826
  ```python
815
827
  import pulumi
816
- import pulumi_docker_build as docker_build
828
+ import pulumi_dockerbuild as dockerbuild
817
829
 
818
- image = docker_build.Image("image",
830
+ image = dockerbuild.Image("image",
819
831
  build_args={
820
832
  "SET_ME_TO_TRUE": "true",
821
833
  },
822
- context=docker_build.BuildContextArgs(
834
+ context=dockerbuild.BuildContextArgs(
823
835
  location="app",
824
836
  ))
825
837
  ```
826
838
  ### Build target
827
839
  ```python
828
840
  import pulumi
829
- import pulumi_docker_build as docker_build
841
+ import pulumi_dockerbuild as dockerbuild
830
842
 
831
- image = docker_build.Image("image",
832
- context=docker_build.BuildContextArgs(
843
+ image = dockerbuild.Image("image",
844
+ context=dockerbuild.BuildContextArgs(
833
845
  location="app",
834
846
  ),
835
847
  target="build-me")
@@ -837,12 +849,12 @@ class Image(pulumi.CustomResource):
837
849
  ### Named contexts
838
850
  ```python
839
851
  import pulumi
840
- import pulumi_docker_build as docker_build
852
+ import pulumi_dockerbuild as dockerbuild
841
853
 
842
- image = docker_build.Image("image", context=docker_build.BuildContextArgs(
854
+ image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
843
855
  location="app",
844
856
  named={
845
- "golang:latest": docker_build.ContextArgs(
857
+ "golang:latest": dockerbuild.ContextArgs(
846
858
  location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
847
859
  ),
848
860
  },
@@ -851,22 +863,22 @@ class Image(pulumi.CustomResource):
851
863
  ### Remote context
852
864
  ```python
853
865
  import pulumi
854
- import pulumi_docker_build as docker_build
866
+ import pulumi_dockerbuild as dockerbuild
855
867
 
856
- image = docker_build.Image("image", context=docker_build.BuildContextArgs(
868
+ image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
857
869
  location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
858
870
  ))
859
871
  ```
860
872
  ### Inline Dockerfile
861
873
  ```python
862
874
  import pulumi
863
- import pulumi_docker_build as docker_build
875
+ import pulumi_dockerbuild as dockerbuild
864
876
 
865
- image = docker_build.Image("image",
866
- context=docker_build.BuildContextArgs(
877
+ image = dockerbuild.Image("image",
878
+ context=dockerbuild.BuildContextArgs(
867
879
  location="app",
868
880
  ),
869
- dockerfile=docker_build.DockerfileArgs(
881
+ dockerfile=dockerbuild.DockerfileArgs(
870
882
  inline=\"\"\"FROM busybox
871
883
  COPY hello.c ./
872
884
  \"\"\",
@@ -875,27 +887,27 @@ class Image(pulumi.CustomResource):
875
887
  ### Remote context
876
888
  ```python
877
889
  import pulumi
878
- import pulumi_docker_build as docker_build
890
+ import pulumi_dockerbuild as dockerbuild
879
891
 
880
- image = docker_build.Image("image",
881
- context=docker_build.BuildContextArgs(
892
+ image = dockerbuild.Image("image",
893
+ context=dockerbuild.BuildContextArgs(
882
894
  location="https://github.com/docker-library/hello-world.git",
883
895
  ),
884
- dockerfile=docker_build.DockerfileArgs(
896
+ dockerfile=dockerbuild.DockerfileArgs(
885
897
  location="app/Dockerfile",
886
898
  ))
887
899
  ```
888
900
  ### Local export
889
901
  ```python
890
902
  import pulumi
891
- import pulumi_docker_build as docker_build
903
+ import pulumi_dockerbuild as dockerbuild
892
904
 
893
- image = docker_build.Image("image",
894
- context=docker_build.BuildContextArgs(
905
+ image = dockerbuild.Image("image",
906
+ context=dockerbuild.BuildContextArgs(
895
907
  location="app",
896
908
  ),
897
- exports=[docker_build.ExportArgs(
898
- docker=docker_build.ExportDockerArgs(
909
+ exports=[dockerbuild.ExportArgs(
910
+ docker=dockerbuild.ExportDockerArgs(
899
911
  tar=True,
900
912
  ),
901
913
  )])
@@ -915,17 +927,20 @@ class Image(pulumi.CustomResource):
915
927
  if these arguments are sensitive.
916
928
 
917
929
  Equivalent to Docker's `--build-arg` flag.
918
- :param pulumi.Input[bool] build_on_preview: Setting this to `false` will always skip image builds during previews,
919
- and setting it to `true` will always build images during previews.
930
+ :param pulumi.Input[bool] build_on_preview: By default, preview behavior depends on the execution environment. If
931
+ Pulumi detects the operation is running on a CI system (GitHub Actions,
932
+ Travis CI, Azure Pipelines, etc.) then it will build images during
933
+ previews as a safeguard. Otherwise, if not running on CI, previews will
934
+ not build images.
935
+
936
+ Setting this to `false` forces previews to never perform builds, and
937
+ setting it to `true` will always build the image during previews.
920
938
 
921
939
  Images built during previews are never exported to registries, however
922
940
  cache manifests are still exported.
923
941
 
924
942
  On-disk Dockerfiles are always validated for syntactic correctness
925
943
  regardless of this setting.
926
-
927
- Defaults to `true` as a safeguard against broken images merging as part
928
- of CI pipelines.
929
944
  :param pulumi.Input[pulumi.InputType['BuilderConfigArgs']] builder: Builder configuration.
930
945
  :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheFromArgs']]]] cache_from: Cache export configuration.
931
946
 
@@ -1038,14 +1053,20 @@ class Image(pulumi.CustomResource):
1038
1053
 
1039
1054
  ## Stability
1040
1055
 
1041
- **This resource is pre-1.0 and in public preview.**
1056
+ **This resource is experimental and subject to change.**
1057
+
1058
+ API types are unstable. Subsequent releases _may_ require manual edits
1059
+ to your state file(s) in order to adopt API changes.
1042
1060
 
1043
- We will strive to keep APIs and behavior as stable as possible, but we
1044
- cannot guarantee stability until version 1.0.
1061
+ `retainOnDelete: true` is recommended with this resource until it is
1062
+ stable. This enables future API changes to be adopted more easily by renaming
1063
+ resources.
1045
1064
 
1046
- ## Migrating Pulumi Docker v3 and v4 Image resources
1065
+ Only use this resource if you understand and accept the risks.
1047
1066
 
1048
- This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
1067
+ ## Migrating v3 and v4 Image resources
1068
+
1069
+ The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
1049
1070
  Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
1050
1071
 
1051
1072
  ### Behavioral differences
@@ -1059,17 +1080,19 @@ class Image(pulumi.CustomResource):
1059
1080
 
1060
1081
  Version `4.x` changed build-on-preview behavior to be opt-in.
1061
1082
  By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
1062
- Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
1083
+ Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
1063
1084
 
1064
- The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
1065
- This behavior can be changed by specifying `buildOnPreview`.
1085
+ The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
1086
+ By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
1087
+ Previews run in non-CI environments will not build images.
1088
+ This behavior is still configurable with `buildOnPreview`.
1066
1089
 
1067
1090
  #### Push behavior
1068
1091
 
1069
1092
  Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
1070
1093
  They expose a `skipPush: true` option to disable pushing.
1071
1094
 
1072
- This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
1095
+ The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
1073
1096
 
1074
1097
  To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
1075
1098
  Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -1140,28 +1163,28 @@ class Image(pulumi.CustomResource):
1140
1163
  ```python
1141
1164
  import pulumi
1142
1165
  import pulumi_aws as aws
1143
- import pulumi_docker_build as docker_build
1166
+ import pulumi_dockerbuild as dockerbuild
1144
1167
 
1145
1168
  ecr_repository = aws.ecr.Repository("ecr-repository")
1146
1169
  auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
1147
- my_image = docker_build.Image("my-image",
1148
- cache_from=[docker_build.CacheFromArgs(
1149
- registry=docker_build.CacheFromRegistryArgs(
1170
+ my_image = dockerbuild.Image("my-image",
1171
+ cache_from=[dockerbuild.CacheFromArgs(
1172
+ registry=dockerbuild.CacheFromRegistryArgs(
1150
1173
  ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
1151
1174
  ),
1152
1175
  )],
1153
- cache_to=[docker_build.CacheToArgs(
1154
- registry=docker_build.CacheToRegistryArgs(
1176
+ cache_to=[dockerbuild.CacheToArgs(
1177
+ registry=dockerbuild.CacheToRegistryArgs(
1155
1178
  image_manifest=True,
1156
1179
  oci_media_types=True,
1157
1180
  ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
1158
1181
  ),
1159
1182
  )],
1160
- context=docker_build.BuildContextArgs(
1183
+ context=dockerbuild.BuildContextArgs(
1161
1184
  location="./app",
1162
1185
  ),
1163
1186
  push=True,
1164
- registries=[docker_build.RegistryArgs(
1187
+ registries=[dockerbuild.RegistryArgs(
1165
1188
  address=ecr_repository.repository_url,
1166
1189
  password=auth_token.password,
1167
1190
  username=auth_token.user_name,
@@ -1172,28 +1195,28 @@ class Image(pulumi.CustomResource):
1172
1195
  ### Multi-platform image
1173
1196
  ```python
1174
1197
  import pulumi
1175
- import pulumi_docker_build as docker_build
1198
+ import pulumi_dockerbuild as dockerbuild
1176
1199
 
1177
- image = docker_build.Image("image",
1178
- context=docker_build.BuildContextArgs(
1200
+ image = dockerbuild.Image("image",
1201
+ context=dockerbuild.BuildContextArgs(
1179
1202
  location="app",
1180
1203
  ),
1181
1204
  platforms=[
1182
- docker_build.Platform.PLAN9_AMD64,
1183
- docker_build.Platform.PLAN9_386,
1205
+ dockerbuild.Platform.PLAN9_AMD64,
1206
+ dockerbuild.Platform.PLAN9_386,
1184
1207
  ])
1185
1208
  ```
1186
1209
  ### Registry export
1187
1210
  ```python
1188
1211
  import pulumi
1189
- import pulumi_docker_build as docker_build
1212
+ import pulumi_dockerbuild as dockerbuild
1190
1213
 
1191
- image = docker_build.Image("image",
1192
- context=docker_build.BuildContextArgs(
1214
+ image = dockerbuild.Image("image",
1215
+ context=dockerbuild.BuildContextArgs(
1193
1216
  location="app",
1194
1217
  ),
1195
1218
  push=True,
1196
- registries=[docker_build.RegistryArgs(
1219
+ registries=[dockerbuild.RegistryArgs(
1197
1220
  address="docker.io",
1198
1221
  password=docker_hub_password,
1199
1222
  username="pulumibot",
@@ -1204,34 +1227,34 @@ class Image(pulumi.CustomResource):
1204
1227
  ### Caching
1205
1228
  ```python
1206
1229
  import pulumi
1207
- import pulumi_docker_build as docker_build
1230
+ import pulumi_dockerbuild as dockerbuild
1208
1231
 
1209
- image = docker_build.Image("image",
1210
- cache_from=[docker_build.CacheFromArgs(
1211
- local=docker_build.CacheFromLocalArgs(
1232
+ image = dockerbuild.Image("image",
1233
+ cache_from=[dockerbuild.CacheFromArgs(
1234
+ local=dockerbuild.CacheFromLocalArgs(
1212
1235
  src="tmp/cache",
1213
1236
  ),
1214
1237
  )],
1215
- cache_to=[docker_build.CacheToArgs(
1216
- local=docker_build.CacheToLocalArgs(
1238
+ cache_to=[dockerbuild.CacheToArgs(
1239
+ local=dockerbuild.CacheToLocalArgs(
1217
1240
  dest="tmp/cache",
1218
- mode=docker_build.CacheMode.MAX,
1241
+ mode=dockerbuild.CacheMode.MAX,
1219
1242
  ),
1220
1243
  )],
1221
- context=docker_build.BuildContextArgs(
1244
+ context=dockerbuild.BuildContextArgs(
1222
1245
  location="app",
1223
1246
  ))
1224
1247
  ```
1225
1248
  ### Docker Build Cloud
1226
1249
  ```python
1227
1250
  import pulumi
1228
- import pulumi_docker_build as docker_build
1251
+ import pulumi_dockerbuild as dockerbuild
1229
1252
 
1230
- image = docker_build.Image("image",
1231
- builder=docker_build.BuilderConfigArgs(
1253
+ image = dockerbuild.Image("image",
1254
+ builder=dockerbuild.BuilderConfigArgs(
1232
1255
  name="cloud-builder-name",
1233
1256
  ),
1234
- context=docker_build.BuildContextArgs(
1257
+ context=dockerbuild.BuildContextArgs(
1235
1258
  location="app",
1236
1259
  ),
1237
1260
  exec_=True)
@@ -1239,23 +1262,23 @@ class Image(pulumi.CustomResource):
1239
1262
  ### Build arguments
1240
1263
  ```python
1241
1264
  import pulumi
1242
- import pulumi_docker_build as docker_build
1265
+ import pulumi_dockerbuild as dockerbuild
1243
1266
 
1244
- image = docker_build.Image("image",
1267
+ image = dockerbuild.Image("image",
1245
1268
  build_args={
1246
1269
  "SET_ME_TO_TRUE": "true",
1247
1270
  },
1248
- context=docker_build.BuildContextArgs(
1271
+ context=dockerbuild.BuildContextArgs(
1249
1272
  location="app",
1250
1273
  ))
1251
1274
  ```
1252
1275
  ### Build target
1253
1276
  ```python
1254
1277
  import pulumi
1255
- import pulumi_docker_build as docker_build
1278
+ import pulumi_dockerbuild as dockerbuild
1256
1279
 
1257
- image = docker_build.Image("image",
1258
- context=docker_build.BuildContextArgs(
1280
+ image = dockerbuild.Image("image",
1281
+ context=dockerbuild.BuildContextArgs(
1259
1282
  location="app",
1260
1283
  ),
1261
1284
  target="build-me")
@@ -1263,12 +1286,12 @@ class Image(pulumi.CustomResource):
1263
1286
  ### Named contexts
1264
1287
  ```python
1265
1288
  import pulumi
1266
- import pulumi_docker_build as docker_build
1289
+ import pulumi_dockerbuild as dockerbuild
1267
1290
 
1268
- image = docker_build.Image("image", context=docker_build.BuildContextArgs(
1291
+ image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
1269
1292
  location="app",
1270
1293
  named={
1271
- "golang:latest": docker_build.ContextArgs(
1294
+ "golang:latest": dockerbuild.ContextArgs(
1272
1295
  location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
1273
1296
  ),
1274
1297
  },
@@ -1277,22 +1300,22 @@ class Image(pulumi.CustomResource):
1277
1300
  ### Remote context
1278
1301
  ```python
1279
1302
  import pulumi
1280
- import pulumi_docker_build as docker_build
1303
+ import pulumi_dockerbuild as dockerbuild
1281
1304
 
1282
- image = docker_build.Image("image", context=docker_build.BuildContextArgs(
1305
+ image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
1283
1306
  location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
1284
1307
  ))
1285
1308
  ```
1286
1309
  ### Inline Dockerfile
1287
1310
  ```python
1288
1311
  import pulumi
1289
- import pulumi_docker_build as docker_build
1312
+ import pulumi_dockerbuild as dockerbuild
1290
1313
 
1291
- image = docker_build.Image("image",
1292
- context=docker_build.BuildContextArgs(
1314
+ image = dockerbuild.Image("image",
1315
+ context=dockerbuild.BuildContextArgs(
1293
1316
  location="app",
1294
1317
  ),
1295
- dockerfile=docker_build.DockerfileArgs(
1318
+ dockerfile=dockerbuild.DockerfileArgs(
1296
1319
  inline=\"\"\"FROM busybox
1297
1320
  COPY hello.c ./
1298
1321
  \"\"\",
@@ -1301,27 +1324,27 @@ class Image(pulumi.CustomResource):
1301
1324
  ### Remote context
1302
1325
  ```python
1303
1326
  import pulumi
1304
- import pulumi_docker_build as docker_build
1327
+ import pulumi_dockerbuild as dockerbuild
1305
1328
 
1306
- image = docker_build.Image("image",
1307
- context=docker_build.BuildContextArgs(
1329
+ image = dockerbuild.Image("image",
1330
+ context=dockerbuild.BuildContextArgs(
1308
1331
  location="https://github.com/docker-library/hello-world.git",
1309
1332
  ),
1310
- dockerfile=docker_build.DockerfileArgs(
1333
+ dockerfile=dockerbuild.DockerfileArgs(
1311
1334
  location="app/Dockerfile",
1312
1335
  ))
1313
1336
  ```
1314
1337
  ### Local export
1315
1338
  ```python
1316
1339
  import pulumi
1317
- import pulumi_docker_build as docker_build
1340
+ import pulumi_dockerbuild as dockerbuild
1318
1341
 
1319
- image = docker_build.Image("image",
1320
- context=docker_build.BuildContextArgs(
1342
+ image = dockerbuild.Image("image",
1343
+ context=dockerbuild.BuildContextArgs(
1321
1344
  location="app",
1322
1345
  ),
1323
- exports=[docker_build.ExportArgs(
1324
- docker=docker_build.ExportDockerArgs(
1346
+ exports=[dockerbuild.ExportArgs(
1347
+ docker=dockerbuild.ExportDockerArgs(
1325
1348
  tar=True,
1326
1349
  ),
1327
1350
  )])
@@ -1375,8 +1398,6 @@ class Image(pulumi.CustomResource):
1375
1398
 
1376
1399
  __props__.__dict__["add_hosts"] = add_hosts
1377
1400
  __props__.__dict__["build_args"] = build_args
1378
- if build_on_preview is None:
1379
- build_on_preview = True
1380
1401
  __props__.__dict__["build_on_preview"] = build_on_preview
1381
1402
  __props__.__dict__["builder"] = builder
1382
1403
  __props__.__dict__["cache_from"] = cache_from
@@ -1481,17 +1502,20 @@ class Image(pulumi.CustomResource):
1481
1502
  @pulumi.getter(name="buildOnPreview")
1482
1503
  def build_on_preview(self) -> pulumi.Output[Optional[bool]]:
1483
1504
  """
1484
- Setting this to `false` will always skip image builds during previews,
1485
- and setting it to `true` will always build images during previews.
1505
+ By default, preview behavior depends on the execution environment. If
1506
+ Pulumi detects the operation is running on a CI system (GitHub Actions,
1507
+ Travis CI, Azure Pipelines, etc.) then it will build images during
1508
+ previews as a safeguard. Otherwise, if not running on CI, previews will
1509
+ not build images.
1510
+
1511
+ Setting this to `false` forces previews to never perform builds, and
1512
+ setting it to `true` will always build the image during previews.
1486
1513
 
1487
1514
  Images built during previews are never exported to registries, however
1488
1515
  cache manifests are still exported.
1489
1516
 
1490
1517
  On-disk Dockerfiles are always validated for syntactic correctness
1491
1518
  regardless of this setting.
1492
-
1493
- Defaults to `true` as a safeguard against broken images merging as part
1494
- of CI pipelines.
1495
1519
  """
1496
1520
  return pulumi.get(self, "build_on_preview")
1497
1521
 
@@ -104,25 +104,13 @@ class Index(pulumi.CustomResource):
104
104
  tag: Optional[pulumi.Input[str]] = None,
105
105
  __props__=None):
106
106
  """
107
- A wrapper around `docker buildx imagetools create` to create an index
108
- (or manifest list) referencing one or more existing images.
107
+ An index (or manifest list) referencing one or more existing images.
109
108
 
110
- In most cases you do not need an `Index` to build a multi-platform
111
- image -- specifying multiple platforms on the `Image` will handle this
112
- for you automatically.
109
+ Useful for crafting a multi-platform image from several
110
+ platform-specific images.
113
111
 
114
- However, as of April 2024, building multi-platform images _with
115
- caching_ will only export a cache for one platform at a time (see [this
116
- discussion](https://github.com/docker/buildx/discussions/1382) for more
117
- details).
118
-
119
- Therefore this resource can be helpful if you are building
120
- multi-platform images with caching: each platform can be built and
121
- cached separately, and an `Index` can join them all together. An
122
- example of this is shown below.
123
-
124
- This resource creates an OCI image index or a Docker manifest list
125
- depending on the media types of the source images.
112
+ This creates an OCI image index or a Docker manifest list depending on
113
+ the media types of the source images.
126
114
 
127
115
  ## Example Usage
128
116
  ### Multi-platform registry caching
@@ -191,25 +179,13 @@ class Index(pulumi.CustomResource):
191
179
  args: IndexArgs,
192
180
  opts: Optional[pulumi.ResourceOptions] = None):
193
181
  """
194
- A wrapper around `docker buildx imagetools create` to create an index
195
- (or manifest list) referencing one or more existing images.
196
-
197
- In most cases you do not need an `Index` to build a multi-platform
198
- image -- specifying multiple platforms on the `Image` will handle this
199
- for you automatically.
200
-
201
- However, as of April 2024, building multi-platform images _with
202
- caching_ will only export a cache for one platform at a time (see [this
203
- discussion](https://github.com/docker/buildx/discussions/1382) for more
204
- details).
182
+ An index (or manifest list) referencing one or more existing images.
205
183
 
206
- Therefore this resource can be helpful if you are building
207
- multi-platform images with caching: each platform can be built and
208
- cached separately, and an `Index` can join them all together. An
209
- example of this is shown below.
184
+ Useful for crafting a multi-platform image from several
185
+ platform-specific images.
210
186
 
211
- This resource creates an OCI image index or a Docker manifest list
212
- depending on the media types of the source images.
187
+ This creates an OCI image index or a Docker manifest list depending on
188
+ the media types of the source images.
213
189
 
214
190
  ## Example Usage
215
191
  ### Multi-platform registry caching
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
- "name": "docker-build"
3
+ "name": "docker-build",
4
+ "server": "github.com/pulumi/pulumi-docker-build"
4
5
  }
@@ -0,0 +1,120 @@
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 +1,17 @@
1
1
  pulumi_docker_build/__init__.py,sha256=jbA6SMpisvwJDycUKuo4IXVJ5_qjIao_1iPP9lcZ-Vw,983
2
2
  pulumi_docker_build/_enums.py,sha256=yfsDmimBobvf70zx6VAR_6ABp50Dan452rpIFVs8jkA,1928
3
3
  pulumi_docker_build/_inputs.py,sha256=L_v8wgNW_tjfh4caAatNqLUzqJwmPRbFSFFXrAs0h88,97964
4
- pulumi_docker_build/_utilities.py,sha256=GzGkkcCHl56rhrwBOUvVkUvrjPsBOA37ZH6NsPQOiKI,9230
5
- pulumi_docker_build/image.py,sha256=fsF_y3EFFqMPDZ5_a0HBNKlbREwFNKHHsl8LW2U1sIQ,75070
6
- pulumi_docker_build/index.py,sha256=UovlVuMLsHogF2-U0-Lzxu1gi8LLixPQHTOgP-YYZ60,14598
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
7
  pulumi_docker_build/outputs.py,sha256=l9VIy-AMXUdQffKVpYcR-KCdtc7huWQ2qCDhv_hgHVs,83253
8
8
  pulumi_docker_build/provider.py,sha256=5f1FtyHXjxcCA3nouMG5HVJyrBEdCB452ezcNt53NmQ,4780
9
- pulumi_docker_build/pulumi-plugin.json,sha256=zQHHpPYv356aVJ950hUzazofky15CPTYmwyqA82kHYI,49
9
+ pulumi_docker_build/pulumi-plugin.json,sha256=aNWnPPkTjPtNuWio8hIVyGOPhfmTF0knTyxRragQ0dQ,102
10
10
  pulumi_docker_build/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  pulumi_docker_build/config/__init__.py,sha256=YdGLR92OvYD0CYDgt_FTaHJOb_VzW8fto_Cgx6fLd3k,267
12
12
  pulumi_docker_build/config/__init__.pyi,sha256=2lJs0q5nxrEi63kCCpe7M23-j-0NiQu9UpKaYAWe5TM,441
13
13
  pulumi_docker_build/config/vars.py,sha256=6g1SHA-v-YBMxDX9KwlhaZZ3Yk7DzC5_EB2xz0FQiKo,756
14
- pulumi_docker_build-0.0.1.dist-info/METADATA,sha256=OCBD-1gS6-qtwodFUXrChup0hJlegNm_qFzC00Fo70s,2546
15
- pulumi_docker_build-0.0.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
16
- pulumi_docker_build-0.0.1.dist-info/top_level.txt,sha256=-O-MiPQ61mhil3wD9QdYf8yA4r5vNPmBgSGdi9cOQ18,20
17
- pulumi_docker_build-0.0.1.dist-info/RECORD,,
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,,
@@ -1,37 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pulumi_docker_build
3
- Version: 0.0.1
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.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
- [![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)
16
- [![NPM version](https://badge.fury.io/js/%40pulumi%2fdocker-build.svg)](https://www.npmjs.com/package/@pulumi/docker-build)
17
- [![Python version](https://badge.fury.io/py/pulumi-docker-build.svg)](https://pypi.org/project/pulumi-docker-build)
18
- [![NuGet version](https://badge.fury.io/nu/pulumi.dockerbuild.svg)](https://badge.fury.io/nu/pulumi.dockerbuild)
19
- [![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-docker-build/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
20
- [![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumi.svg)](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
21
-
22
- # Docker-Build Resource Provider
23
-
24
- 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/).
25
-
26
- Not to be confused with the earlier
27
- [Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
28
- appropriate for managing resources unrelated to building images.
29
-
30
- | Provider | Use cases |
31
- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
- | `@pulumi/docker-build` | Anything related to building images with `docker build`. |
33
- | `@pulumi/docker` | Everything else -- including running containers and creating networks. |
34
-
35
- ## Reference
36
-
37
- 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/).