RegistryEnterpriseSyncRule

class RegistryEnterpriseSyncRule : KotlinCustomResource

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`

Properties

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val instanceId: Output<String>

ID of Container Registry Enterprise Edition source instance.

Link copied to clipboard
val name: Output<String>

Name of Container Registry Enterprise Edition sync rule.

Link copied to clipboard
val namespaceName: Output<String>

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

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val repoName: Output<String>?

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 ruleId: Output<String>

The uuid of Container Registry Enterprise Edition sync rule.

Link copied to clipboard
val syncDirection: Output<String>

FROM or TO, the direction of synchronization. FROM means source instance, TO means target instance.

Link copied to clipboard
val syncScope: Output<String>

REPO or NAMESPACE,the scope that the synchronization rule applies.

Link copied to clipboard
val tagFilter: Output<String>

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

Link copied to clipboard

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

Link copied to clipboard

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>

The target region to be synchronized.

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

Name of the target repository.

Link copied to clipboard
val urn: Output<String>