Search in sources :

Example 1 with V1PodTemplate

use of io.kubernetes.client.openapi.models.V1PodTemplate in project java by kubernetes-client.

the class CoreV1Api method deleteNamespacedPodTemplateAsync.

/**
 * (asynchronously) delete a PodTemplate
 *
 * @param name name of the PodTemplate (required)
 * @param namespace object name and auth scope, such as for teams and projects (required)
 * @param pretty If 'true', then the output is pretty printed. (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value
 *     must be non-negative integer. The value zero indicates delete immediately. If this value is
 *     nil, the default grace period for the specified type will be used. Defaults to a per object
 *     value if not specified. zero means delete immediately. (optional)
 * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be
 *     deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the
 *     \"orphan\" finalizer will be added to/removed from the object's finalizers
 *     list. Either this field or PropagationPolicy may be set, but not both. (optional)
 * @param propagationPolicy Whether and how garbage collection will be performed. Either this
 *     field or OrphanDependents may be set, but not both. The default policy is decided by the
 *     existing finalizer set in the metadata.finalizers and the resource-specific default policy.
 *     Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -
 *     allow the garbage collector to delete the dependents in the background;
 *     'Foreground' - a cascading policy that deletes all dependents in the foreground.
 *     (optional)
 * @param body (optional)
 * @param _callback The callback to be executed when the API call finishes
 * @return The request call
 * @throws ApiException If fail to process the API call, e.g. serializing the request body object
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 202 </td><td> Accepted </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public okhttp3.Call deleteNamespacedPodTemplateAsync(String name, String namespace, String pretty, String dryRun, Integer gracePeriodSeconds, Boolean orphanDependents, String propagationPolicy, V1DeleteOptions body, final ApiCallback<V1PodTemplate> _callback) throws ApiException {
    okhttp3.Call localVarCall = deleteNamespacedPodTemplateValidateBeforeCall(name, namespace, pretty, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, body, _callback);
    Type localVarReturnType = new TypeToken<V1PodTemplate>() {
    }.getType();
    localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
    return localVarCall;
}
Also used : V1PodTemplate(io.kubernetes.client.openapi.models.V1PodTemplate) Type(java.lang.reflect.Type)

Example 2 with V1PodTemplate

use of io.kubernetes.client.openapi.models.V1PodTemplate in project java by kubernetes-client.

the class CoreV1Api method createNamespacedPodTemplateWithHttpInfo.

/**
 * create a PodTemplate
 *
 * @param namespace object name and auth scope, such as for teams and projects (required)
 * @param body (required)
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param fieldManager fieldManager is a name associated with the actor or entity that is making
 *     these changes. The value must be less than or 128 characters long, and only contain
 *     printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. (optional)
 * @param fieldValidation fieldValidation determines how the server should respond to
 *     unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
 *     servers or servers with the &#x60;ServerSideFieldValidation&#x60; feature disabled will
 *     discard valid values specified in this param and not perform any server side field
 *     validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
 *     with a warning for each unknown/duplicate field, but successfully serves the request. -
 *     Strict: fails the request on unknown/duplicate fields. (optional)
 * @return ApiResponse&lt;V1PodTemplate&gt;
 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
 *     response body
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 201 </td><td> Created </td><td>  -  </td></tr>
 * <tr><td> 202 </td><td> Accepted </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1PodTemplate> createNamespacedPodTemplateWithHttpInfo(String namespace, V1PodTemplate body, String pretty, String dryRun, String fieldManager, String fieldValidation) throws ApiException {
    okhttp3.Call localVarCall = createNamespacedPodTemplateValidateBeforeCall(namespace, body, pretty, dryRun, fieldManager, fieldValidation, null);
    Type localVarReturnType = new TypeToken<V1PodTemplate>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : V1PodTemplate(io.kubernetes.client.openapi.models.V1PodTemplate) Type(java.lang.reflect.Type)

Example 3 with V1PodTemplate

use of io.kubernetes.client.openapi.models.V1PodTemplate in project java by kubernetes-client.

the class CoreV1Api method patchNamespacedPodTemplateWithHttpInfo.

/**
 * partially update the specified PodTemplate
 *
 * @param name name of the PodTemplate (required)
 * @param namespace object name and auth scope, such as for teams and projects (required)
 * @param body (required)
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param fieldManager fieldManager is a name associated with the actor or entity that is making
 *     these changes. The value must be less than or 128 characters long, and only contain
 *     printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is
 *     required for apply requests (application/apply-patch) but optional for non-apply patch
 *     types (JsonPatch, MergePatch, StrategicMergePatch). (optional)
 * @param fieldValidation fieldValidation determines how the server should respond to
 *     unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
 *     servers or servers with the &#x60;ServerSideFieldValidation&#x60; feature disabled will
 *     discard valid values specified in this param and not perform any server side field
 *     validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
 *     with a warning for each unknown/duplicate field, but successfully serves the request. -
 *     Strict: fails the request on unknown/duplicate fields. (optional)
 * @param force Force is going to \&quot;force\&quot; Apply requests. It means user will
 *     re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply
 *     patch requests. (optional)
 * @return ApiResponse&lt;V1PodTemplate&gt;
 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
 *     response body
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 201 </td><td> Created </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1PodTemplate> patchNamespacedPodTemplateWithHttpInfo(String name, String namespace, V1Patch body, String pretty, String dryRun, String fieldManager, String fieldValidation, Boolean force) throws ApiException {
    okhttp3.Call localVarCall = patchNamespacedPodTemplateValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, null);
    Type localVarReturnType = new TypeToken<V1PodTemplate>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : V1PodTemplate(io.kubernetes.client.openapi.models.V1PodTemplate) Type(java.lang.reflect.Type)

Example 4 with V1PodTemplate

use of io.kubernetes.client.openapi.models.V1PodTemplate in project java by kubernetes-client.

the class CoreV1Api method replaceNamespacedPodTemplateWithHttpInfo.

/**
 * replace the specified PodTemplate
 *
 * @param name name of the PodTemplate (required)
 * @param namespace object name and auth scope, such as for teams and projects (required)
 * @param body (required)
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param fieldManager fieldManager is a name associated with the actor or entity that is making
 *     these changes. The value must be less than or 128 characters long, and only contain
 *     printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. (optional)
 * @param fieldValidation fieldValidation determines how the server should respond to
 *     unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
 *     servers or servers with the &#x60;ServerSideFieldValidation&#x60; feature disabled will
 *     discard valid values specified in this param and not perform any server side field
 *     validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
 *     with a warning for each unknown/duplicate field, but successfully serves the request. -
 *     Strict: fails the request on unknown/duplicate fields. (optional)
 * @return ApiResponse&lt;V1PodTemplate&gt;
 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
 *     response body
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 201 </td><td> Created </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1PodTemplate> replaceNamespacedPodTemplateWithHttpInfo(String name, String namespace, V1PodTemplate body, String pretty, String dryRun, String fieldManager, String fieldValidation) throws ApiException {
    okhttp3.Call localVarCall = replaceNamespacedPodTemplateValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, null);
    Type localVarReturnType = new TypeToken<V1PodTemplate>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : V1PodTemplate(io.kubernetes.client.openapi.models.V1PodTemplate) Type(java.lang.reflect.Type)

Example 5 with V1PodTemplate

use of io.kubernetes.client.openapi.models.V1PodTemplate in project heron by twitter.

the class V1Controller method loadPodFromTemplate.

/**
 * Initiates the process of locating and loading <code>Pod Template</code> from a <code>ConfigMap</code>.
 * The loaded text is then parsed into a usable <code>Pod Template</code>.
 * @param isExecutor Flag to indicate loading of <code>Pod Template</code> for <code>Executor</code>
 *                   or <code>Manager</code>.
 * @return A <code>Pod Template</code> which is loaded and parsed from a <code>ConfigMap</code>.
 */
@VisibleForTesting
protected V1PodTemplateSpec loadPodFromTemplate(boolean isExecutor) {
    final Pair<String, String> podTemplateConfigMapName = getPodTemplateLocation(isExecutor);
    // Default Pod Template.
    if (podTemplateConfigMapName == null) {
        LOG.log(Level.INFO, "Configuring cluster with the Default Pod Template");
        return new V1PodTemplateSpec();
    }
    if (isPodTemplateDisabled) {
        throw new TopologySubmissionException("Custom Pod Templates are disabled");
    }
    final String configMapName = podTemplateConfigMapName.first;
    final String podTemplateName = podTemplateConfigMapName.second;
    // Attempt to locate ConfigMap with provided Pod Template name.
    try {
        V1ConfigMap configMap = getConfigMap(configMapName);
        if (configMap == null) {
            throw new ApiException(String.format("K8s client unable to locate ConfigMap '%s'", configMapName));
        }
        final Map<String, String> configMapData = configMap.getData();
        if (configMapData != null && configMapData.containsKey(podTemplateName)) {
            // NullPointerException when Pod Template is empty.
            V1PodTemplateSpec podTemplate = ((V1PodTemplate) Yaml.load(configMapData.get(podTemplateName))).getTemplate();
            LOG.log(Level.INFO, String.format("Configuring cluster with the %s.%s Pod Template", configMapName, podTemplateName));
            return podTemplate;
        }
        // Failure to locate Pod Template with provided name.
        throw new ApiException(String.format("Failed to locate Pod Template '%s' in ConfigMap '%s'", podTemplateName, configMapName));
    } catch (ApiException e) {
        KubernetesUtils.logExceptionWithDetails(LOG, e.getMessage(), e);
        throw new TopologySubmissionException(e.getMessage());
    } catch (IOException | ClassCastException | NullPointerException e) {
        final String message = String.format("Error parsing Pod Template '%s' in ConfigMap '%s'", podTemplateName, configMapName);
        KubernetesUtils.logExceptionWithDetails(LOG, message, e);
        throw new TopologySubmissionException(message);
    }
}
Also used : TopologySubmissionException(org.apache.heron.scheduler.TopologySubmissionException) V1PodTemplate(io.kubernetes.client.openapi.models.V1PodTemplate) V1PodTemplateSpec(io.kubernetes.client.openapi.models.V1PodTemplateSpec) IOException(java.io.IOException) V1ConfigMap(io.kubernetes.client.openapi.models.V1ConfigMap) ApiException(io.kubernetes.client.openapi.ApiException) VisibleForTesting(com.google.common.annotations.VisibleForTesting)

Aggregations

V1PodTemplate (io.kubernetes.client.openapi.models.V1PodTemplate)11 Type (java.lang.reflect.Type)10 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 ApiException (io.kubernetes.client.openapi.ApiException)1 V1ConfigMap (io.kubernetes.client.openapi.models.V1ConfigMap)1 V1PodTemplateSpec (io.kubernetes.client.openapi.models.V1PodTemplateSpec)1 IOException (java.io.IOException)1 TopologySubmissionException (org.apache.heron.scheduler.TopologySubmissionException)1