Search in sources :

Example 1 with V1ServiceAccount

use of io.kubernetes.client.openapi.models.V1ServiceAccount in project pravega by pravega.

the class K8sClient method createServiceAccount.

/**
 * Create a service account.
 * @param namespace The namespace.
 * @param account Service Account.
 * @return A future indicating the status of create service account operation.
 */
@SneakyThrows(ApiException.class)
public CompletableFuture<V1ServiceAccount> createServiceAccount(String namespace, V1ServiceAccount account) {
    CoreV1Api api = new CoreV1Api();
    K8AsyncCallback<V1ServiceAccount> callback = new K8AsyncCallback<>("createServiceAccount-" + account.getMetadata().getName());
    api.createNamespacedServiceAccountAsync(namespace, account, PRETTY_PRINT, DRY_RUN, FIELD_MANAGER, callback);
    return exceptionallyExpecting(callback.getFuture(), isConflict, null);
}
Also used : V1ServiceAccount(io.kubernetes.client.openapi.models.V1ServiceAccount) CoreV1Api(io.kubernetes.client.openapi.apis.CoreV1Api) SneakyThrows(lombok.SneakyThrows)

Example 2 with V1ServiceAccount

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

the class CoreV1Api method patchNamespacedServiceAccountWithHttpInfo.

/**
 * partially update the specified ServiceAccount
 *
 * @param name name of the ServiceAccount (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;V1ServiceAccount&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<V1ServiceAccount> patchNamespacedServiceAccountWithHttpInfo(String name, String namespace, V1Patch body, String pretty, String dryRun, String fieldManager, String fieldValidation, Boolean force) throws ApiException {
    okhttp3.Call localVarCall = patchNamespacedServiceAccountValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, null);
    Type localVarReturnType = new TypeToken<V1ServiceAccount>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : Type(java.lang.reflect.Type) V1ServiceAccount(io.kubernetes.client.openapi.models.V1ServiceAccount)

Example 3 with V1ServiceAccount

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

the class CoreV1Api method deleteNamespacedServiceAccountWithHttpInfo.

/**
 * delete a ServiceAccount
 *
 * @param name name of the ServiceAccount (required)
 * @param namespace object name and auth scope, such as for teams and projects (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 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
 *     \&quot;orphan\&quot; finalizer will be added to/removed from the object&#39;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: &#39;Orphan&#39; - orphan the dependents; &#39;Background&#39; -
 *     allow the garbage collector to delete the dependents in the background;
 *     &#39;Foreground&#39; - a cascading policy that deletes all dependents in the foreground.
 *     (optional)
 * @param body (optional)
 * @return ApiResponse&lt;V1ServiceAccount&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> 202 </td><td> Accepted </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1ServiceAccount> deleteNamespacedServiceAccountWithHttpInfo(String name, String namespace, String pretty, String dryRun, Integer gracePeriodSeconds, Boolean orphanDependents, String propagationPolicy, V1DeleteOptions body) throws ApiException {
    okhttp3.Call localVarCall = deleteNamespacedServiceAccountValidateBeforeCall(name, namespace, pretty, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, body, null);
    Type localVarReturnType = new TypeToken<V1ServiceAccount>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : Type(java.lang.reflect.Type) V1ServiceAccount(io.kubernetes.client.openapi.models.V1ServiceAccount)

Example 4 with V1ServiceAccount

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

the class CoreV1Api method readNamespacedServiceAccountAsync.

/**
 * (asynchronously) read the specified ServiceAccount
 *
 * @param name name of the ServiceAccount (required)
 * @param namespace object name and auth scope, such as for teams and projects (required)
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (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> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public okhttp3.Call readNamespacedServiceAccountAsync(String name, String namespace, String pretty, final ApiCallback<V1ServiceAccount> _callback) throws ApiException {
    okhttp3.Call localVarCall = readNamespacedServiceAccountValidateBeforeCall(name, namespace, pretty, _callback);
    Type localVarReturnType = new TypeToken<V1ServiceAccount>() {
    }.getType();
    localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
    return localVarCall;
}
Also used : Type(java.lang.reflect.Type) V1ServiceAccount(io.kubernetes.client.openapi.models.V1ServiceAccount)

Example 5 with V1ServiceAccount

use of io.kubernetes.client.openapi.models.V1ServiceAccount in project pravega by pravega.

the class K8sClient method createAWatchAndReturnOnTermination.

/**
 * Create a Watch for a pod and return once the pod has terminated.
 * @param namespace Namespace.
 * @param podName Name of the pod.
 * @return V1ContainerStateTerminated.
 */
@SneakyThrows({ ApiException.class, IOException.class })
private Optional<V1ContainerStateTerminated> createAWatchAndReturnOnTermination(String namespace, String podName) {
    log.debug("Creating a watch for pod {}/{}", namespace, podName);
    CoreV1Api api = new CoreV1Api();
    K8AsyncCallback<V1ServiceAccount> callback = new K8AsyncCallback<>("createAWatchAndReturnOnTermination-" + podName);
    @Cleanup Watch<V1Pod> watch = Watch.createWatch(client, api.listNamespacedPodCall(namespace, PRETTY_PRINT, ALLOW_WATCH_BOOKMARKS, null, null, "POD_NAME=" + podName, null, null, null, Boolean.TRUE, callback), new TypeToken<Watch.Response<V1Pod>>() {
    }.getType());
    for (Watch.Response<V1Pod> v1PodResponse : watch) {
        List<V1ContainerStatus> containerStatuses = v1PodResponse.object.getStatus().getContainerStatuses();
        log.debug("Container status for the pod {} is {}", podName, containerStatuses);
        if (containerStatuses == null || containerStatuses.size() == 0) {
            log.debug("Container status is not part of the pod {}/{}, wait for the next update from KUBERNETES Cluster", namespace, podName);
            continue;
        }
        // We check only the first container as there is only one container in the pod.
        V1ContainerState containerStatus = containerStatuses.get(0).getState();
        log.debug("Current container status is {}", containerStatus);
        if (containerStatus.getTerminated() != null) {
            log.info("Pod {}/{} has terminated", namespace, podName);
            return Optional.of(containerStatus.getTerminated());
        }
    }
    return Optional.empty();
}
Also used : V1ContainerStatus(io.kubernetes.client.openapi.models.V1ContainerStatus) V1ServiceAccount(io.kubernetes.client.openapi.models.V1ServiceAccount) Cleanup(lombok.Cleanup) TypeToken(com.google.gson.reflect.TypeToken) V1ContainerState(io.kubernetes.client.openapi.models.V1ContainerState) Watch(io.kubernetes.client.util.Watch) V1Pod(io.kubernetes.client.openapi.models.V1Pod) CoreV1Api(io.kubernetes.client.openapi.apis.CoreV1Api) SneakyThrows(lombok.SneakyThrows)

Aggregations

V1ServiceAccount (io.kubernetes.client.openapi.models.V1ServiceAccount)12 Type (java.lang.reflect.Type)10 CoreV1Api (io.kubernetes.client.openapi.apis.CoreV1Api)2 SneakyThrows (lombok.SneakyThrows)2 TypeToken (com.google.gson.reflect.TypeToken)1 V1ContainerState (io.kubernetes.client.openapi.models.V1ContainerState)1 V1ContainerStatus (io.kubernetes.client.openapi.models.V1ContainerStatus)1 V1Pod (io.kubernetes.client.openapi.models.V1Pod)1 Watch (io.kubernetes.client.util.Watch)1 Cleanup (lombok.Cleanup)1