RegistryEnterpriseSyncRuleArgs

data class RegistryEnterpriseSyncRuleArgs(val instanceId: Output<String>? = null, val name: Output<String>? = null, val namespaceName: Output<String>? = null, val repoName: Output<String>? = null, val tagFilter: Output<String>? = null, val targetInstanceId: Output<String>? = null, val targetNamespaceName: Output<String>? = null, val targetRegionId: Output<String>? = null, val targetRepoName: Output<String>? = null) : ConvertibleToJava<RegistryEnterpriseSyncRuleArgs>

This resource will help you to manager Container Registry Enterprise Edition sync rules. For information about Container Registry Enterprise Edition sync rules and how to use it, see Create a Sync Rule

NOTE: Available since v1.90.0. NOTE: You need to set your registry password in Container Registry Enterprise Edition console before use this resource.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.cr.RegistryEnterpriseInstance;
import com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;
import com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;
import com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;
import com.pulumi.alicloud.cs.RegistryEnterpriseRepo;
import com.pulumi.alicloud.cs.RegistryEnterpriseRepoArgs;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetRegionsArgs;
import com.pulumi.alicloud.cs.RegistryEnterpriseSyncRule;
import com.pulumi.alicloud.cs.RegistryEnterpriseSyncRuleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var name = config.get("name").orElse("tf-example");
var sourceRegistryEnterpriseInstance = new RegistryEnterpriseInstance("sourceRegistryEnterpriseInstance", RegistryEnterpriseInstanceArgs.builder()
.paymentType("Subscription")
.period(1)
.renewPeriod(0)
.renewalStatus("ManualRenewal")
.instanceType("Advanced")
.instanceName(String.format("%s-source", name))
.build());
var targetRegistryEnterpriseInstance = new RegistryEnterpriseInstance("targetRegistryEnterpriseInstance", RegistryEnterpriseInstanceArgs.builder()
.paymentType("Subscription")
.period(1)
.renewPeriod(0)
.renewalStatus("ManualRenewal")
.instanceType("Advanced")
.instanceName(String.format("%s-target", name))
.build());
var sourceRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace("sourceRegistryEnterpriseNamespace", RegistryEnterpriseNamespaceArgs.builder()
.instanceId(sourceRegistryEnterpriseInstance.id())
.autoCreate(false)
.defaultVisibility("PUBLIC")
.build());
var targetRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace("targetRegistryEnterpriseNamespace", RegistryEnterpriseNamespaceArgs.builder()
.instanceId(targetRegistryEnterpriseInstance.id())
.autoCreate(false)
.defaultVisibility("PUBLIC")
.build());
var sourceRegistryEnterpriseRepo = new RegistryEnterpriseRepo("sourceRegistryEnterpriseRepo", RegistryEnterpriseRepoArgs.builder()
.instanceId(sourceRegistryEnterpriseInstance.id())
.namespace(sourceRegistryEnterpriseNamespace.name())
.summary("this is summary of my new repo")
.repoType("PUBLIC")
.detail("this is a public repo")
.build());
var targetRegistryEnterpriseRepo = new RegistryEnterpriseRepo("targetRegistryEnterpriseRepo", RegistryEnterpriseRepoArgs.builder()
.instanceId(targetRegistryEnterpriseInstance.id())
.namespace(targetRegistryEnterpriseNamespace.name())
.summary("this is summary of my new repo")
.repoType("PUBLIC")
.detail("this is a public repo")
.build());
final var defaultRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()
.current(true)
.build());
var defaultRegistryEnterpriseSyncRule = new RegistryEnterpriseSyncRule("defaultRegistryEnterpriseSyncRule", RegistryEnterpriseSyncRuleArgs.builder()
.instanceId(sourceRegistryEnterpriseInstance.id())
.namespaceName(sourceRegistryEnterpriseNamespace.name())
.targetRegionId(defaultRegions.applyValue(getRegionsResult -> getRegionsResult.regions()[0].id()))
.targetInstanceId(targetRegistryEnterpriseInstance.id())
.targetNamespaceName(targetRegistryEnterpriseNamespace.name())
.tagFilter(".*")
.repoName(sourceRegistryEnterpriseRepo.name())
.targetRepoName(targetRegistryEnterpriseRepo.name())
.build());
}
}

Import

Container Registry Enterprise Edition sync rule can be imported using the id. Format to {instance_id}:{namespace_name}:{rule_id}, e.g.

$ pulumi import alicloud:cs/registryEnterpriseSyncRule:RegistryEnterpriseSyncRule default `cri-xxx:my-namespace:crsr-yyy`

Constructors

Link copied to clipboard
fun RegistryEnterpriseSyncRuleArgs(instanceId: Output<String>? = null, name: Output<String>? = null, namespaceName: Output<String>? = null, repoName: Output<String>? = null, tagFilter: Output<String>? = null, targetInstanceId: Output<String>? = null, targetNamespaceName: Output<String>? = null, targetRegionId: Output<String>? = null, targetRepoName: Output<String>? = null)

Functions

Link copied to clipboard
open override fun toJava(): RegistryEnterpriseSyncRuleArgs

Properties

Link copied to clipboard
val instanceId: Output<String>? = null

ID of Container Registry Enterprise Edition source instance.

Link copied to clipboard
val name: Output<String>? = null

Name of Container Registry Enterprise Edition sync rule.

Link copied to clipboard
val namespaceName: Output<String>? = null

Name of Container Registry Enterprise Edition source namespace. It can contain 2 to 30 characters.

Link copied to clipboard
val repoName: Output<String>? = null

Name of the source repository which should be set together with target_repo_name, if empty means that the synchronization scope is the entire namespace level.

Link copied to clipboard
val tagFilter: Output<String>? = null

The regular expression used to filter image tags for synchronization in the source repository.

Link copied to clipboard
val targetInstanceId: Output<String>? = null

ID of Container Registry Enterprise Edition target instance to be synchronized.

Link copied to clipboard
val targetNamespaceName: Output<String>? = null

Name of Container Registry Enterprise Edition target namespace to be synchronized. It can contain 2 to 30 characters.

Link copied to clipboard
val targetRegionId: Output<String>? = null

The target region to be synchronized.

Link copied to clipboard
val targetRepoName: Output<String>? = null

Name of the target repository.