#!/usr/bin/env bash
# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

source "$SOWLIB/k8s"

webhookready()
{
  if [ "$1" = "deploy" ]; then
    PLUGIN_setup "$2" webhookready
    K8S_setKubeConfig "$field_path" "$GENDIR/$field_path/kubeconfig"

    getRequiredValue namespace "namespace" PLUGINCONFIGJSON

    local starttime
    local endtime
    local timeout=600
    starttime=$(date +%s)
    endtime=$(( starttime + timeout ))

    if [[ -z "$DRYRUN" ]]; then
      debug "webhook replicas: $(kubectl -n "$namespace" get deployment cert-manager-webhook -o jsonpath='{.status.readyReplicas}')"
      while [[ $(date +%s) -le $endtime ]]; do
        replicas=$(kubectl -n "$namespace" get deployment cert-manager-webhook -o jsonpath='{.status.readyReplicas}')
        if [[ ${replicas:-0} -gt 0 ]]; then
          return
        fi
        echo "waiting for cert-manager webhook to be running"
        sleep 10
      done
      fail "cert-manager-webhook did not become ready within $timeout seconds"
    fi
  fi
}
