Bridge what Dokploy v0.30 added, and let the docs through
Six new resources from terraform-provider-dokploy v0.2.0 -- Network, DnsProvider, VaultProvider, Schedule, VolumeBackup and Libsql -- plus the new properties on Domain (`enabled`), Compose (`serviceNetworks`, `createEnvFile`, `icon`) and Application. Verified with `pulumi up` against a live v0.30.2 instance: create, preview-clean, and destroy. The upstream provider also now refuses a volume Mount with no `volumeName`, which Dokploy would otherwise turn into an anonymous Docker volume recreated on every deploy. That surfaces here at preview time, before anything exists. Two things made that fix nearly invisible to Pulumi users, so this commit fixes the second one: the bridge resolves the upstream `docs/` through the Go module cache, where a locally `replace`d dependency never lands, so tfgen was emitting every resource with no description at all. UpstreamRepoPath now points at the checkout and all 445 inputs carry documentation -- with names rendered per language, so Python readers see `volume_name` where TypeScript readers see `volumeName`.
This commit is contained in:
Generated
+83
-69
@@ -23,16 +23,16 @@ class MountArgs:
|
||||
service_id: pulumi.Input[_builtins.str],
|
||||
service_type: pulumi.Input[_builtins.str],
|
||||
type: pulumi.Input[_builtins.str],
|
||||
content: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
file_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
host_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
|
||||
content: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
file_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
host_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
volume_name: pulumi.Input[Optional[_builtins.str]] = None):
|
||||
"""
|
||||
The set of arguments for constructing a Mount resource.
|
||||
|
||||
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
|
||||
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||
:param pulumi.Input[_builtins.str] content: Contents of the generated file, when `type` is `file`.
|
||||
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
|
||||
@@ -80,7 +80,7 @@ class MountArgs:
|
||||
@pulumi.getter(name="serviceType")
|
||||
def service_type(self) -> pulumi.Input[_builtins.str]:
|
||||
"""
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
"""
|
||||
return pulumi.get(self, "service_type")
|
||||
|
||||
@@ -102,64 +102,64 @@ class MountArgs:
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter
|
||||
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def content(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Contents of the generated file, when `type` is `file`.
|
||||
"""
|
||||
return pulumi.get(self, "content")
|
||||
|
||||
@content.setter
|
||||
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def content(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "content", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="filePath")
|
||||
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def file_path(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Path of the generated file, when `type` is `file`.
|
||||
"""
|
||||
return pulumi.get(self, "file_path")
|
||||
|
||||
@file_path.setter
|
||||
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def file_path(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "file_path", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="hostPath")
|
||||
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def host_path(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Path on the host, when `type` is `bind`.
|
||||
"""
|
||||
return pulumi.get(self, "host_path")
|
||||
|
||||
@host_path.setter
|
||||
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def host_path(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "host_path", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="volumeName")
|
||||
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def volume_name(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Name of the Docker volume, when `type` is `volume`.
|
||||
"""
|
||||
return pulumi.get(self, "volume_name")
|
||||
|
||||
@volume_name.setter
|
||||
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def volume_name(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "volume_name", value)
|
||||
|
||||
|
||||
@pulumi.input_type
|
||||
class _MountState:
|
||||
def __init__(__self__, *,
|
||||
content: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
file_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
host_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_id: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
|
||||
content: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
file_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
host_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_id: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
volume_name: pulumi.Input[Optional[_builtins.str]] = None):
|
||||
"""
|
||||
Input properties used for looking up and filtering Mount resources.
|
||||
|
||||
@@ -168,7 +168,7 @@ class _MountState:
|
||||
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
|
||||
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
|
||||
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
|
||||
"""
|
||||
@@ -191,98 +191,98 @@ class _MountState:
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter
|
||||
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def content(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Contents of the generated file, when `type` is `file`.
|
||||
"""
|
||||
return pulumi.get(self, "content")
|
||||
|
||||
@content.setter
|
||||
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def content(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "content", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="filePath")
|
||||
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def file_path(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Path of the generated file, when `type` is `file`.
|
||||
"""
|
||||
return pulumi.get(self, "file_path")
|
||||
|
||||
@file_path.setter
|
||||
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def file_path(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "file_path", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="hostPath")
|
||||
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def host_path(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Path on the host, when `type` is `bind`.
|
||||
"""
|
||||
return pulumi.get(self, "host_path")
|
||||
|
||||
@host_path.setter
|
||||
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def host_path(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "host_path", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="mountPath")
|
||||
def mount_path(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def mount_path(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Path inside the container where the mount appears.
|
||||
"""
|
||||
return pulumi.get(self, "mount_path")
|
||||
|
||||
@mount_path.setter
|
||||
def mount_path(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def mount_path(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "mount_path", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="serviceId")
|
||||
def service_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def service_id(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
"""
|
||||
return pulumi.get(self, "service_id")
|
||||
|
||||
@service_id.setter
|
||||
def service_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def service_id(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "service_id", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="serviceType")
|
||||
def service_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def service_type(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
"""
|
||||
return pulumi.get(self, "service_type")
|
||||
|
||||
@service_type.setter
|
||||
def service_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def service_type(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "service_type", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter
|
||||
def type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def type(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||
"""
|
||||
return pulumi.get(self, "type")
|
||||
|
||||
@type.setter
|
||||
def type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def type(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "type", value)
|
||||
|
||||
@_builtins.property
|
||||
@pulumi.getter(name="volumeName")
|
||||
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
||||
def volume_name(self) -> pulumi.Input[Optional[_builtins.str]]:
|
||||
"""
|
||||
Name of the Docker volume, when `type` is `volume`.
|
||||
"""
|
||||
return pulumi.get(self, "volume_name")
|
||||
|
||||
@volume_name.setter
|
||||
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
||||
def volume_name(self, value: pulumi.Input[Optional[_builtins.str]]):
|
||||
pulumi.set(self, "volume_name", value)
|
||||
|
||||
|
||||
@@ -292,17 +292,24 @@ class Mount(pulumi.CustomResource):
|
||||
def __init__(__self__,
|
||||
resource_name: str,
|
||||
opts: Optional[pulumi.ResourceOptions] = None,
|
||||
content: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
file_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
host_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_id: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
volume_name: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
content: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
file_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
host_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_id: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
volume_name: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
__props__=None):
|
||||
"""
|
||||
Create a Mount resource with the given unique name, props, and options.
|
||||
A volume, bind mount, or config file attached to a Dokploy service.
|
||||
|
||||
* `type = "volume"` — a named Docker volume; set `volume_name`.
|
||||
* `type = "bind"` — a path on the host; set `host_path`.
|
||||
* `type = "file"` — a file rendered from `content`; set `file_path`.
|
||||
|
||||
> **A `volume` mount must set `volume_name`.** Dokploy hands an unset name to Docker as an empty source, which creates a fresh anonymous volume on every deploy and orphans the previous one — the data never survives a redeploy. The provider rejects that combination at plan time.
|
||||
|
||||
|
||||
:param str resource_name: The name of the resource.
|
||||
:param pulumi.ResourceOptions opts: Options for the resource.
|
||||
@@ -311,7 +318,7 @@ class Mount(pulumi.CustomResource):
|
||||
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
|
||||
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
|
||||
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
|
||||
"""
|
||||
@@ -322,7 +329,14 @@ class Mount(pulumi.CustomResource):
|
||||
args: MountArgs,
|
||||
opts: Optional[pulumi.ResourceOptions] = None):
|
||||
"""
|
||||
Create a Mount resource with the given unique name, props, and options.
|
||||
A volume, bind mount, or config file attached to a Dokploy service.
|
||||
|
||||
* `type = "volume"` — a named Docker volume; set `volume_name`.
|
||||
* `type = "bind"` — a path on the host; set `host_path`.
|
||||
* `type = "file"` — a file rendered from `content`; set `file_path`.
|
||||
|
||||
> **A `volume` mount must set `volume_name`.** Dokploy hands an unset name to Docker as an empty source, which creates a fresh anonymous volume on every deploy and orphans the previous one — the data never survives a redeploy. The provider rejects that combination at plan time.
|
||||
|
||||
|
||||
:param str resource_name: The name of the resource.
|
||||
:param MountArgs args: The arguments to use to populate this resource's properties.
|
||||
@@ -339,14 +353,14 @@ class Mount(pulumi.CustomResource):
|
||||
def _internal_init(__self__,
|
||||
resource_name: str,
|
||||
opts: Optional[pulumi.ResourceOptions] = None,
|
||||
content: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
file_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
host_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_id: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
volume_name: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
content: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
file_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
host_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_id: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
volume_name: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
__props__=None):
|
||||
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
||||
if not isinstance(opts, pulumi.ResourceOptions):
|
||||
@@ -382,14 +396,14 @@ class Mount(pulumi.CustomResource):
|
||||
def get(resource_name: str,
|
||||
id: pulumi.Input[str],
|
||||
opts: Optional[pulumi.ResourceOptions] = None,
|
||||
content: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
file_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
host_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_id: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
service_type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
type: Optional[pulumi.Input[_builtins.str]] = None,
|
||||
volume_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'Mount':
|
||||
content: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
file_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
host_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_id: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
service_type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
type: pulumi.Input[Optional[_builtins.str]] = None,
|
||||
volume_name: pulumi.Input[Optional[_builtins.str]] = None) -> 'Mount':
|
||||
"""
|
||||
Get an existing Mount resource's state with the given name, id, and optional extra
|
||||
properties used to qualify the lookup.
|
||||
@@ -402,7 +416,7 @@ class Mount(pulumi.CustomResource):
|
||||
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
|
||||
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
|
||||
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
|
||||
"""
|
||||
@@ -464,7 +478,7 @@ class Mount(pulumi.CustomResource):
|
||||
@pulumi.getter(name="serviceType")
|
||||
def service_type(self) -> pulumi.Output[_builtins.str]:
|
||||
"""
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
|
||||
"""
|
||||
return pulumi.get(self, "service_type")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user