Search in sources :

Example 21 with Group

use of io.fabric8.kubernetes.model.annotation.Group in project fabric8-maven-plugin by fabric8io.

the class ContainerHandlerTest method getContainerTestWithUser.

@Test
public void getContainerTestWithUser() {
    project.setArtifactId("test-artifact");
    project.setGroupId("test-group");
    ports.add("8080");
    ports.add("9090");
    tags.add("latest");
    tags.add("test");
    // container name with user and image with tag
    ContainerHandler handler = new ContainerHandler(project.getProperties(), new GroupArtifactVersion("test-group", "test-artifact", "0"), probeHandler);
    BuildImageConfiguration buildImageConfiguration = new BuildImageConfiguration.Builder().ports(ports).from("fabric8/").cleanup("try").tags(tags).compression("gzip").dockerFile("testFile").dockerFileDir("/demo").build();
    ImageConfiguration imageConfiguration = new ImageConfiguration.Builder().name("user/test:latest").buildConfig(buildImageConfiguration).registry("docker.io").build();
    images.clear();
    images.add(imageConfiguration);
    containers = handler.getContainers(config, images);
    assertNotNull(containers);
    assertEquals("user-test-artifact", containers.get(0).getName());
    assertEquals("docker.io/user/test:latest", containers.get(0).getImage());
    assertEquals("IfNotPresent", containers.get(0).getImagePullPolicy());
}
Also used : BuildImageConfiguration(io.fabric8.maven.docker.config.BuildImageConfiguration) ImageConfiguration(io.fabric8.maven.docker.config.ImageConfiguration) GroupArtifactVersion(io.fabric8.maven.core.model.GroupArtifactVersion) BuildImageConfiguration(io.fabric8.maven.docker.config.BuildImageConfiguration) Test(org.junit.Test)

Example 22 with Group

use of io.fabric8.kubernetes.model.annotation.Group in project quarkus-test-framework by quarkus-qe.

the class OpenShiftClient method installOperator.

public void installOperator(Service service, String name, String channel, String source, String sourceNamespace) {
    if (!ENABLED_EPHEMERAL_NAMESPACES.getAsBoolean()) {
        throw new UnsupportedOperationException("Operators not supported with ephemeral namespaces disabled");
    }
    // Install the operator group
    OperatorGroup groupModel = new OperatorGroup();
    groupModel.setMetadata(new ObjectMeta());
    groupModel.getMetadata().setName(service.getName());
    groupModel.setSpec(new OperatorGroupSpec());
    groupModel.getSpec().setTargetNamespaces(Arrays.asList(currentNamespace));
    client.resource(groupModel).createOrReplace();
    // Install the subscription
    Subscription subscriptionModel = new Subscription();
    subscriptionModel.setMetadata(new ObjectMeta());
    subscriptionModel.getMetadata().setName(name);
    subscriptionModel.getMetadata().setNamespace(currentNamespace);
    subscriptionModel.setSpec(new SubscriptionSpec());
    subscriptionModel.getSpec().setChannel(channel);
    subscriptionModel.getSpec().setName(name);
    subscriptionModel.getSpec().setSource(source);
    subscriptionModel.getSpec().setSourceNamespace(sourceNamespace);
    Log.info("Installing operator... %s", service.getName());
    client.operatorHub().subscriptions().create(subscriptionModel);
    // Wait for the operator to be installed
    untilIsTrue(() -> {
        // Get Cluster Service Version
        Subscription subscription = client.operatorHub().subscriptions().withName(name).get();
        String installedCsv = subscription.getStatus().getInstalledCSV();
        if (StringUtils.isEmpty(installedCsv)) {
            return false;
        }
        // Check Cluster Service Version status
        ClusterServiceVersion operatorService = client.operatorHub().clusterServiceVersions().withName(installedCsv).get();
        return OPERATOR_PHASE_INSTALLED.equals(operatorService.getStatus().getPhase());
    }, AwaitilitySettings.defaults().withService(service).usingTimeout(service.getConfiguration().getAsDuration(OPERATOR_INSTALL_TIMEOUT, TIMEOUT_DEFAULT)));
    Log.info("Operator installed... %s", service.getName());
}
Also used : ObjectMeta(io.fabric8.kubernetes.api.model.ObjectMeta) OperatorGroupSpec(io.fabric8.openshift.api.model.operatorhub.v1.OperatorGroupSpec) ClusterServiceVersion(io.fabric8.openshift.api.model.operatorhub.v1alpha1.ClusterServiceVersion) Subscription(io.fabric8.openshift.api.model.operatorhub.v1alpha1.Subscription) OperatorGroup(io.fabric8.openshift.api.model.operatorhub.v1.OperatorGroup) SubscriptionSpec(io.fabric8.openshift.api.model.operatorhub.v1alpha1.SubscriptionSpec)

Example 23 with Group

use of io.fabric8.kubernetes.model.annotation.Group in project kubernetes-client by fabric8io.

the class CRGeneratorRunner method generate.

public List<WritableCRCompilationUnit> generate(CustomResourceDefinition crd, String basePackageName) {
    CustomResourceDefinitionSpec crSpec = crd.getSpec();
    String crName = crSpec.getNames().getKind();
    String group = crSpec.getGroup();
    List<WritableCRCompilationUnit> writableCUs = new ArrayList<>(crSpec.getVersions().size());
    for (CustomResourceDefinitionVersion crdv : crSpec.getVersions()) {
        String version = crdv.getName();
        String pkg = Optional.ofNullable(basePackageName).map(p -> p + "." + version).orElse(version);
        AbstractJSONSchema2Pojo specGenerator = null;
        String prefix = crName;
        if (config.getPrefixStrategy() == Config.Prefix.NEVER) {
            prefix = "";
        }
        JSONSchemaProps spec = crdv.getSchema().getOpenAPIV3Schema().getProperties().get("spec");
        if (spec != null) {
            String suffix = (config.getSuffixStrategy() != Config.Suffix.NEVER) ? "Spec" : "";
            specGenerator = AbstractJSONSchema2Pojo.fromJsonSchema("spec", spec, pkg, prefix, suffix, config);
        }
        AbstractJSONSchema2Pojo statusGenerator = null;
        JSONSchemaProps status = crdv.getSchema().getOpenAPIV3Schema().getProperties().get("status");
        if (status != null) {
            String suffix = (config.getSuffixStrategy() != Config.Suffix.NEVER) ? "Status" : "";
            statusGenerator = AbstractJSONSchema2Pojo.fromJsonSchema("status", status, pkg, prefix, suffix, config);
        }
        AbstractJSONSchema2Pojo crGenerator = new JCRObject(pkg, crName, group, version, prefix + "Spec", prefix + "Status", specGenerator != null, statusGenerator != null, crdv.getStorage(), crdv.getServed(), config);
        List<GeneratorResult.ClassResult> classResults = validateAndAggregate(crGenerator, specGenerator, statusGenerator);
        writableCUs.add(new WritableCRCompilationUnit(classResults));
    }
    return writableCUs;
}
Also used : java.util(java.util) Logger(org.slf4j.Logger) AbstractJSONSchema2Pojo(io.fabric8.java.generator.nodes.AbstractJSONSchema2Pojo) Files(java.nio.file.Files) CustomResourceDefinitionSpec(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec) LoggerFactory(org.slf4j.LoggerFactory) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) Collectors(java.util.stream.Collectors) GeneratorResult(io.fabric8.java.generator.nodes.GeneratorResult) File(java.io.File) FileNotFoundException(java.io.FileNotFoundException) Stream(java.util.stream.Stream) CustomResourceDefinitionVersion(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion) Serialization(io.fabric8.kubernetes.client.utils.Serialization) FileVisitOption(java.nio.file.FileVisitOption) JavaGeneratorException(io.fabric8.java.generator.exceptions.JavaGeneratorException) CustomResourceDefinition(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition) JCRObject(io.fabric8.java.generator.nodes.JCRObject) JSONSchemaProps(io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps) Path(java.nio.file.Path) JCRObject(io.fabric8.java.generator.nodes.JCRObject) AbstractJSONSchema2Pojo(io.fabric8.java.generator.nodes.AbstractJSONSchema2Pojo) JSONSchemaProps(io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps) CustomResourceDefinitionVersion(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion) CustomResourceDefinitionSpec(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec)

Example 24 with Group

use of io.fabric8.kubernetes.model.annotation.Group in project kubernetes-client by fabric8io.

the class PodGroupTest method testCreate.

@Test
@DisplayName("Should create a pod group")
void testCreate() {
    PodGroup podGroup = createPodGroup();
    server.expect().post().withPath("/apis/scheduling.volcano.sh/v1beta1/namespaces/ns1/podgroups").andReturn(HttpURLConnection.HTTP_CREATED, podGroup).once();
    podGroup = client.v1beta1().podGroups().inNamespace("ns1").create(createPodGroup());
    assertNotNull(podGroup);
    assertEquals("pg1", podGroup.getMetadata().getName());
}
Also used : PodGroup(io.fabric8.volcano.scheduling.v1beta1.PodGroup) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 25 with Group

use of io.fabric8.kubernetes.model.annotation.Group in project kubernetes-client by fabric8io.

the class PodGroupCreate method main.

public static void main(String[] args) {
    try (NamespacedVolcanoClient volcanoClient = new DefaultVolcanoClient()) {
        String namespace = "default";
        String groupName = "group1";
        PodGroup podGroup = Utils.buildDefaultPodGroups(namespace, groupName);
        // Create PodGroup
        volcanoClient.podGroups().inNamespace(namespace).createOrReplace(podGroup);
        System.out.println("Created: " + podGroup.getMetadata().getName());
        // Wait for status or 5s timeout
        volcanoClient.podGroups().inNamespace(namespace).withName(groupName).waitUntilCondition(group -> Objects.nonNull(group.getStatus()) && group.getStatus().getPhase().equals("Running"), 5, TimeUnit.SECONDS);
        System.out.println("Created: " + podGroup.getMetadata().getName());
        // List PodGroup
        PodGroupList podGroupList = volcanoClient.podGroups().inNamespace(namespace).list();
        System.out.println("There are " + podGroupList.getItems().size() + " PodGroup objects in " + namespace);
        // Delete PodGroup
        volcanoClient.podGroups().inNamespace(namespace).withName(groupName).delete();
    }
}
Also used : NamespacedVolcanoClient(io.fabric8.volcano.client.NamespacedVolcanoClient) DefaultVolcanoClient(io.fabric8.volcano.client.DefaultVolcanoClient) PodGroup(io.fabric8.volcano.scheduling.v1beta1.PodGroup) PodGroupList(io.fabric8.volcano.scheduling.v1beta1.PodGroupList)

Aggregations

Test (org.junit.jupiter.api.Test)25 Test (org.junit.Test)24 ArrayList (java.util.ArrayList)16 IOException (java.io.IOException)14 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)13 Map (java.util.Map)13 CuratorFramework (org.apache.curator.framework.CuratorFramework)12 List (java.util.List)11 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)10 GenericKafkaListenerBuilder (io.strimzi.api.kafka.model.listener.arraylistener.GenericKafkaListenerBuilder)10 ParallelNamespaceTest (io.strimzi.systemtest.annotations.ParallelNamespaceTest)10 File (java.io.File)9 HashMap (java.util.HashMap)9 Collectors (java.util.stream.Collectors)9 ZooKeeperGroup (io.fabric8.groups.internal.ZooKeeperGroup)8 Pod (io.fabric8.kubernetes.api.model.Pod)8 KubernetesClientBuilder (io.fabric8.kubernetes.client.KubernetesClientBuilder)8 KafkaUser (io.strimzi.api.kafka.model.KafkaUser)8 RetryNTimes (org.apache.curator.retry.RetryNTimes)8 Tag (org.junit.jupiter.api.Tag)8