Skip to content

Commit

Permalink
remove kubectl (#230)
Browse files Browse the repository at this point in the history
* fixes runwhen/platform-core#1198

* update pdb format

* add gcp ingress first task

* add backend health check from annotation

* updates to gce-ingress cb

* template / gen rule updates

* tweak genrule

* debug template

* update name

* test rule

* fix template

* touchups

* add function check

* debug runtime

* failfast

* add debug task

* test none

* platy with os path

* add auth to gcloud

* remove debug

* add timeout

* fix typo

* debug

* test

* switch to evaluate

* update

* update

* update

* x

* x

* update

* try backtick

* x

* x

* remove code ticks

* update timeout_seconds for deployment script

* test runbook update

* debug

* test

* test env var

* debug

* more debug

* add defaults

* remove invalid dict

* revert most changes - focus on simple tasks

* fix cb

* set dit details

* add new rules

* try newline edit

* try to escape it

* remove target service

* update issue next steps

* update gcloud

* update env

* gcoud target removal test 2

* target service removals (not all)

* update

* fix kind

* add space

* hardcode kind

* add readme

* remove kubectl
  • Loading branch information
stewartshea authored Oct 30, 2023
1 parent e01d7d4 commit ea99005
Show file tree
Hide file tree
Showing 18 changed files with 0 additions and 74 deletions.
2 changes: 0 additions & 2 deletions codebundles/k8s-certmanager-healthcheck/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ Get Namespace Certificate Summary
${cert_info}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get certificates.cert-manager.io --context=${CONTEXT} -n ${NAMESPACE} -ojson | jq -r --arg now "$(date +%Y-%m-%dT%H:%M:%SZ)" '.items[] | select(.status.conditions[] | select(.type == "Ready" and .status == "True")) | select(.status.renewalTime) | select((.status.notAfter | strptime("%Y-%m-%dT%H:%M:%SZ") | mktime) <= ($now | strptime("%Y-%m-%dT%H:%M:%SZ") | mktime)) | "Namespace:" + .metadata.namespace + " URL:" + .spec.dnsNames[0] + " Renews:" + .status.renewalTime + " Expires:" + .status.notAfter'
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.CLI.Parse Cli Output By Line
Expand All @@ -43,7 +42,6 @@ Find Failed Certificate Requests and Identify Issues
${failed_certificaterequests}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get certificaterequests.cert-manager.io --context=${CONTEXT} -n ${NAMESPACE} -o json | jq -r '.items[] | select(.status.conditions[] | select(.type == "Ready" and .status != "True")) | {certRequest: .metadata.name, certificate: (.metadata.ownerReferences[].name), issuer: .spec.issuerRef.name, readyStatus: (.status.conditions[] | select(.type == "Ready")).status, readyMessage: (.status.conditions[] | select(.type == "Ready")).message, approvedStatus: (.status.conditions[] | select(.type == "Approved")).status, approvedMessage: (.status.conditions[] | select(.type == "Approved")).message} | "---\\nCertificateRequest: \\(.certRequest)", "Certificate: \\(.certificate)", "Issuer: \\(.issuer)", "Ready Status: \\(.readyStatus)", "Ready Message: \\(.readyMessage)", "Approved Status: \\(.approvedStatus)", "Approved Message: \\(.approvedMessage)"'
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.CLI.Parse Cli Output By Line
Expand Down
1 change: 0 additions & 1 deletion codebundles/k8s-certmanager-healthcheck/sli.robot
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ Get Health Score of CertManager Workloads
[Tags] Pods Containers Running Status Count Health CertManager Cert
${cm_pods}= RW.CLI.Run Cli
... cmd=kubectl get pods --context=${CONTEXT} -n ${NAMESPACE} -ojson
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
${not_ready_count}= RW.CLI.Parse Cli Json Output
Expand Down
5 changes: 0 additions & 5 deletions codebundles/k8s-chaos-flux/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ Suspend the Flux Resource Reconciliation
[Tags] Chaos Flux Kubernetes Resource Suspend
${suspend_flux_resource}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} patch ${FLUX_RESOURCE_TYPE} ${FLUX_RESOURCE_NAME} -n ${FLUX_RESOURCE_NAMESPACE} --context ${CONTEXT} --type='json' -p='[{"op": "add", "path": "/spec/suspend", "value":true}]'
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
${history}= RW.CLI.Pop Shell History
Expand All @@ -121,7 +120,6 @@ Find Random FluxCD Workload as Chaos Target
IF "${RANDOMIZE}" == "Yes"
${deployments}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get deployments -l kustomize.toolkit.fluxcd.io/name=${FLUX_RESOURCE_NAME} -n ${TARGET_NAMESPACE} --context ${CONTEXT} -o json
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
${deployment_count}= RW.CLI.Parse Cli Json Output
Expand All @@ -146,7 +144,6 @@ Execute Chaos Command
FOR ${index} IN RANGE ${CHAOS_COMMAND_LOOP}
${run_chaos_command}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} exec ${TARGET_RESOURCE} -n ${TARGET_NAMESPACE} --context ${CONTEXT} -- ${CHAOS_COMMAND}
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
END
Expand All @@ -158,7 +155,6 @@ Execute Additional Chaos Command
[Tags] Chaos Flux Kubernetes Resource
${run_additional_command}= RW.CLI.Run Cli
... cmd=${ADDNL_COMMAND} -n ${TARGET_NAMESPACE} --context ${CONTEXT}
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
${history}= RW.CLI.Pop Shell History
Expand All @@ -169,7 +165,6 @@ Resume Flux Resource Reconciliation
[Tags] Chaos Flux Kubernetes Resource Resume
${resume_flux}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} patch ${FLUX_RESOURCE_TYPE} ${FLUX_RESOURCE_NAME} -n ${FLUX_RESOURCE_NAMESPACE} --context ${CONTEXT} --type='json' -p='[{"op": "remove", "path": "/spec/suspend", "value":true}]'
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
${history}= RW.CLI.Pop Shell History
Expand Down
4 changes: 0 additions & 4 deletions codebundles/k8s-daemonset-healthcheck/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ Get DaemonSet Log Details For Report
${logs}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} logs --tail=100 daemonset/${DAEMONSET_NAME} --context ${CONTEXT} -n ${NAMESPACE}
... env=${env}
... target_service=${kubectl}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
${history}= RW.CLI.Pop Shell History
Expand All @@ -33,7 +32,6 @@ Get Related Daemonset Events
${events}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get events --field-selector type=Warning --context ${CONTEXT} -n ${NAMESPACE} | grep -i "${DAEMONSET_NAME}" || true
... env=${env}
... target_service=${kubectl}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
${history}= RW.CLI.Pop Shell History
Expand All @@ -58,13 +56,11 @@ Check Daemonset Replicas
${daemonset_describe}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} describe daemonset/${DAEMONSET_NAME} --context ${CONTEXT} -n ${NAMESPACE}
... env=${env}
... target_service=${kubectl}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
${daemonset}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get daemonset/${DAEMONSET_NAME} --context ${CONTEXT} -n ${NAMESPACE} -o json
... env=${env}
... target_service=${kubectl}
... secret_file__kubeconfig=${kubeconfig}
# status fields
${current_scheduled}= RW.CLI.Parse Cli Json Output
Expand Down
4 changes: 0 additions & 4 deletions codebundles/k8s-deployment-healthcheck/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ Troubleshoot Deployment Warning Events
[Tags] events workloads errors warnings get deployment <service_name>
${events}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get events --context ${CONTEXT} -n ${NAMESPACE} --field-selector type=Warning | grep -i "${DEPLOYMENT_NAME}" || true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
Expand All @@ -75,7 +74,6 @@ Get Deployment Workload Details For Report
[Tags] deployment details manifest info <service_name>
${deployment}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get deployment/${DEPLOYMENT_NAME} --context ${CONTEXT} -n ${NAMESPACE} -o yaml
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
Expand All @@ -99,7 +97,6 @@ Troubleshoot Deployment Replicas
... pods
${deployment}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get deployment/${DEPLOYMENT_NAME} --context ${CONTEXT} -n ${NAMESPACE} -o json
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
Expand Down Expand Up @@ -157,7 +154,6 @@ Check For Deployment Event Anomalies
... connection error
${recent_anomalies}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get events --field-selector type!=Warning --context ${CONTEXT} -n ${NAMESPACE} -o json | jq -r '.items[] | select(.involvedObject.name|contains("${DEPLOYMENT_NAME}")) | select( .count / ( if ((.lastTimestamp|fromdate)-(.firstTimestamp|fromdate))/60 == 0 then 1 else ((.lastTimestamp|fromdate)-(.firstTimestamp|fromdate))/60 end ) > ${ANOMALY_THRESHOLD}) | "Event(s) Per Minute:" + (.count / ( if ((.lastTimestamp|fromdate)-(.firstTimestamp|fromdate))/60 == 0 then 1 else ((.lastTimestamp|fromdate)-(.firstTimestamp|fromdate))/60 end ) |tostring) +" Count:" + (.count|tostring) + " Minute(s):" + (((.lastTimestamp|fromdate)-(.firstTimestamp|fromdate))/60|tostring)+ " Object:" + .involvedObject.namespace + "/" + .involvedObject.kind + "/" + .involvedObject.name + " Reason:" + .reason + " Message:" + .message'
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
... render_in_commandlist=true
Expand Down
5 changes: 0 additions & 5 deletions codebundles/k8s-fluxcd-helm-health/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ List all available FluxCD Helmreleases
[Tags] FluxCD Helmrelease Available List
${helmreleases}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} --context ${CONTEXT}
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand All @@ -29,7 +28,6 @@ Fetch Installed FluxCD Helmrelease Versions
[Tags] FluxCD Helmrelease Versions
${helmrelease_versions}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} -o=jsonpath="{range .items[*]}{'\\nName: '}{@.metadata.name}{'\\nlastAppliedRevision:'}{@.status.lastAppliedRevision}{'\\nlastAttemptedRevision:'}{@.status.lastAttemptedRevision}{'\\n---'}{end}" --context ${CONTEXT} || true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand All @@ -42,7 +40,6 @@ Fetch Mismatched FluxCD HelmRelease Version
[Tags] FluxCD Helmrelease Version Mismatched Unhealthy
${helmrelease_version_mismatches}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} -o json --context ${CONTEXT} | jq -r '.items[] | select(.status.lastAppliedRevision!=.status.lastAttemptedRevision) | "Name: " + .metadata.name + " Last Attempted Version: " + .status.lastAttemptedRevision + " Last Applied Revision: " + .status.lastAppliedRevision'
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand All @@ -66,7 +63,6 @@ Fetch FluxCD HelmRelease Error Messages
[Tags] FluxCD Helmrelease Errors Unhealthy Message
${helmrelease_errors}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} -o=jsonpath="{range .items[?(@.status.conditions[].status=='False')]}{'-----\\nName: '}{@.metadata.name}{'\\n'}{@.status.conditions[*].message}{'\\n'}{end}" --context ${CONTEXT} || true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand All @@ -90,7 +86,6 @@ Check for Available Helm Chart Updates
[Tags] FluxCD Helmchart Errors Unhealthy Message HelmRelease
${helmchart_updates_available}= RW.CLI.Run Cli
... cmd=namespace="${NAMESPACE}" context="${CONTEXT}"; helm_releases=$(${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n "$namespace" --context "$context" -o json | jq -r '.items[] | .metadata.name'); echo "$helm_releases" | while IFS= read -r release; do chart_details=$(${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} "$release" -n "$namespace" --context "$context" -o json | jq -r '.spec.chart.spec // empty'); if [[ -n "$chart_details" ]]; then chart_kind=$(echo "$chart_details" | jq -r '.sourceRef.kind // empty'); chart_name=$(echo "$chart_details" | jq -r '.chart // empty'); chart_source_name=$(echo "$chart_details" | jq -r '.sourceRef.name // empty'); chart_namespace=$(echo "$chart_details" | jq -r '.sourceRef.namespace // empty'); chart_version=$(echo "$chart_details" | jq -r '.version // "N/A"'); if [[ "$chart_kind" == "HelmRepository" && -n "$chart_name" && -n "$chart_namespace" ]]; then repo_url=$(${KUBERNETES_DISTRIBUTION_BINARY} get helmrepositories.source.toolkit.fluxcd.io "$chart_source_name" -n "$chart_namespace" --context "$context" -o json | jq -r '.spec.url // empty'); if [[ -n "$repo_url" ]]; then temp_repo_name="$chart_source_name-temp-$release"; add_repo=$(helm repo add "$temp_repo_name" "$repo_url"); available_chart_version=$(helm search repo "$temp_repo_name"/"$chart_name" --version ">$chart_version" --output json | jq -r '.[].version'); if [[ -n "$available_chart_version" ]]; then sorted_versions=($(echo "\${available_chart_version[@]}" | tr ' ' '\\n' | sort -V)); available_version=\${sorted_versions[-1]}; version_update_available="True"; else available_version="N/A"; version_update_available="False"; fi; remove_repo=$(helm repo remove "$temp_repo_name"); else available_version="N/A"; version_update_available="False"; fi; else available_version="N/A"; version_update_available="False"; fi; else chart_name="N/A"; chart_namespace="N/A"; chart_version="N/A"; available_version="N/A"; version_update_available="False"; fi; echo "Release: $release | Chart: $chart_namespace/$chart_name | Installed Version: $chart_version | Available Update: $version_update_available | Available Version: $available_version"; done
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand Down
2 changes: 0 additions & 2 deletions codebundles/k8s-fluxcd-kustomization-health/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ List all available Kustomization objects
[Tags] FluxCD Kustomization Available List
${kustomizations}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} --context ${CONTEXT}
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand All @@ -29,7 +28,6 @@ Get details for unready Kustomizations
[Tags] FluxCD Kustomization Versions
${kustomizations_not_ready}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get ${RESOURCE_NAME} -n ${NAMESPACE} --context ${CONTEXT} -o json | jq -r '.items[] | select (.status.conditions[] | select(.type == "Ready" and .status == "False")) | "---\\nKustomization Name: \\(.metadata.name)\\n\\nReady Status: \\(.status.conditions[] | select(.type == "Ready") | "\\n ready: \\(.status)\\n message: \\(.message)\\n reason: \\(.reason)\\n last_transition_time: \\(.lastTransitionTime)")\\n\\nReconcile Status:\\(.status.conditions[] | select(.type == "Reconciling") |"\\n reconciling: \\(.status)\\n message: \\(.message)")\\n---\\n"'
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${KUBECONFIG}
... render_in_commandlist=true
Expand Down
4 changes: 0 additions & 4 deletions codebundles/k8s-image-check/runbook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ Check Image Rollover Times In Namespace
${rsp}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get pods --context=${CONTEXT} -n ${NAMESPACE} --field-selector=status.phase==Running -o json | jq -r '[.items[] | "Images: " + (.spec.containers[].image|tostring) + ", Last Started Times:" + (.status.containerStatuses[].state.running.startedAt|tostring)]'
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.Core.Add Pre To Report Image Info:\n${rsp.stdout}
Expand All @@ -48,7 +47,6 @@ List Images and Tags for Every Container in Running Pods
${image_details}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get pods --context=${CONTEXT} -n ${NAMESPACE} --field-selector=status.phase==Running -o=json | jq -r '.items[] | "---", "pod_name: " + .metadata.name, "Status: " + .status.phase, "containers:", (.spec.containers[] | "- container_name: " + .name, " \ image_path: " + (.image | split(":")[0]), " \ image_tag: " + (.image | split(":")[1])), "---"'
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.Core.Add Pre To Report Image details for pods in ${NAMESPACE}:\n${image_details.stdout}
Expand All @@ -61,7 +59,6 @@ List Images and Tags for Every Container in Failed Pods
${image_details}= RW.CLI.Run Cli
... cmd=${KUBERNETES_DISTRIBUTION_BINARY} get pods --context=${CONTEXT} -n ${NAMESPACE} --field-selector=status.phase==Failed -o=json | jq -r '.items[] | "---", "pod_name: " + .metadata.name, "Status: " + .status.phase, "containers:", (.spec.containers[] | "- container_name: " + .name, " \ image_path: " + \(.image | split(":")[0]), " \ image_tag: " + (.image | split(":")[1])), "---"'
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.Core.Add Pre To Report Image details for pods in ${NAMESPACE}:\n${image_details.stdout}
Expand All @@ -74,7 +71,6 @@ List ImagePullBackOff Events and Test Path and Tags
${image_path_and_tag_details}= RW.CLI.Run Cli
... cmd=NAMESPACE=${NAMESPACE}; POD_NAME="skopeo-pod"; CONTEXT="${CONTEXT}"; events=$(${KUBERNETES_DISTRIBUTION_BINARY} get events -n $NAMESPACE --context=$CONTEXT -o json | jq --arg timestamp "$(date -u -v -5M +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -u -d "-5 minutes" +"%Y-%m-%dT%H:%M:%SZ")" '.items[] | select(.lastTimestamp > $timestamp)'); if [[ ! -z "\${events-unset}" ]]; then image_pull_backoff_events=$(echo "$events" | jq -s '[.[] | select(.reason == "BackOff") | .message] | .[]'); else echo "No events found in the last 5 minutes"; exit; fi; if [[ $image_pull_backoff_events =~ "Back-off pulling image" ]]; then echo "Running Skopeo Pod"; ${KUBERNETES_DISTRIBUTION_BINARY} run $POD_NAME --restart=Never -n $NAMESPACE --context=$CONTEXT --image=quay.io/containers/skopeo:latest --command -- sleep infinity && echo "Waiting for the $POD_NAME to be running..." && ${KUBERNETES_DISTRIBUTION_BINARY} wait --for=condition=Ready pod/$POD_NAME -n $NAMESPACE --context=$CONTEXT; else echo "No image pull backoff events found"; exit; fi; while IFS= read -r event; do echo "Found BackOff with message: $event"; echo "Checking if we can reach the image with skopeo and what tags exist"; container_image_path_tag=$(echo "$event" | cut -d' ' -f4 | tr -d '"' | tr -d '\\'); container_image_path="\${container_image_path_tag%:*}"; container_image_tag="\${container_image_path_tag#*:}"; if [ -z "$container_image_path" ] || [ -z "$container_image_tag" ]; then continue; fi; skopeo_output=$(${KUBERNETES_DISTRIBUTION_BINARY} exec $POD_NAME -n $NAMESPACE --context=$CONTEXT -- skopeo inspect docker://$container_image_path:$container_image_tag); skopeo_exit_code=$?; if [ $skopeo_exit_code -eq 0 ]; then echo "Container image '$container_image_path:$container_image_tag' exists."; else echo "Container image '$container_image_path:$container_image_tag' does not exist."; echo "Available tags for '$container_image_path':"; available_tags=$(${KUBERNETES_DISTRIBUTION_BINARY} exec $POD_NAME -n $NAMESPACE --context=$CONTEXT -- skopeo list-tags docker://$container_image_path ); echo "$available_tags"; fi; done <<<"$image_pull_backoff_events" && echo "Deleting Skopeo pod" && ${KUBERNETES_DISTRIBUTION_BINARY} delete pod $POD_NAME -n $NAMESPACE --context=$CONTEXT && echo "Done"
... render_in_commandlist=true
... target_service=${kubectl}
... env=${env}
... secret_file__kubeconfig=${kubeconfig}
RW.Core.Add Pre To Report Image details for pods in ${NAMESPACE}:\n${image_path_and_tag_details.stdout}
Expand Down
Loading

0 comments on commit ea99005

Please sign in to comment.