All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.galasa.kubernetes.IKubernetesNamespace Maven / Gradle / Ivy

There is a newer version: 0.34.0
Show newest version
/*
 * Licensed Materials - Property of IBM
 * 
 * (c) Copyright IBM Corp. 2020.
 */
package dev.galasa.kubernetes;

import javax.validation.constraints.NotNull;

/**
 * This is the main interface to a provisioned Kubernetes namespace on an infrastructure cluster.
 * Access to the Object is via the {@link KubernetesNamespace} annotation or the SPI. 
 *  
 * @author Michael Baylis
 *
 */
public interface IKubernetesNamespace {

    /**
     * Create a Resource in Kubernetes.  The Manager appends certain information to the YAML before
     * creating the resource, like the run name and possibly storage classes.
     * 
     * @param yaml
     * @return
     * @throws KubernetesManagerException
     */
    @NotNull
    public IResource createResource(@NotNull String yaml) throws KubernetesManagerException;

    /**
     * @return the Full ID of the namespace in the form cluserid/namespaceid
     */
    public String getFullId();
    
    /**
     * Save all the supported resources to stored artifacts in the default folder, along with pod logs
     * 
     * @throws KubernetesManagerException if there are problems saving the entire configuration to storedartifacts
     */
    public void saveNamespaceConfiguration() throws KubernetesManagerException;
    /**
     * Save all the supported resources to stored artifacts in the default folder, along with pod logs
     * 
     * @param storedArtifactPath The path in stored artifacts to save the configuration in.  If null, will default.
     * @throws KubernetesManagerException if there are problems saving the entire configuration to storedartifacts
     */
    public void saveNamespaceConfiguration(String storedArtifactPath) throws KubernetesManagerException;


    /**
     * Retrieve the tag of this namespace
     * 
     * @return The tag of this namespace
     */
    @NotNull
    public String getTag();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy