<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloud-Native | Luis Cacho</title><link>https://luiscachog.io/garden/cloud-native/</link><atom:link href="https://luiscachog.io/garden/cloud-native/index.xml" rel="self" type="application/rss+xml"/><description>Cloud-Native</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 22 Nov 2022 00:00:00 +0000</lastBuildDate><image><url>https://luiscachog.io/media/icon_hu4fa4dbbaafd6f1b45a88958b9b4a0dd0_11007_512x512_fill_lanczos_center_3.png</url><title>Cloud-Native</title><link>https://luiscachog.io/garden/cloud-native/</link></image><item><title>Trigger a scheduled job manually on Kubernetes</title><link>https://luiscachog.io/garden/trigger-scheduled-job-kubernetes/</link><pubDate>Thu, 22 Jun 2023 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/trigger-scheduled-job-kubernetes/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mockup command&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kubectl create job --from&lt;span class="o">=&lt;/span>cronjob/&amp;lt;cronjob-name&amp;gt; &amp;lt;job-name&amp;gt; -n &amp;lt;namespace-name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>How can I trigger a Kubernetes Scheduled Job manually?&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://stackoverflow.com/questions/40401795/how-can-i-trigger-a-kubernetes-scheduled-job-manually" target="_blank" rel="noopener">https://stackoverflow.com/questions/40401795/how-can-i-trigger-a-kubernetes-scheduled-job-manually&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Delete Evicted Pods</title><link>https://luiscachog.io/garden/delete-evicted-pods/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/delete-evicted-pods/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get pods &lt;span class="p">|&lt;/span> grep Evicted &lt;span class="p">|&lt;/span> awk &lt;span class="s1">&amp;#39;{print $1}&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span> xargs kubectl delete pod
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> Gist&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://gist.github.com/ipedrazas/9c622404fb41f2343a0db85b3821275d" target="_blank" rel="noopener">https://gist.github.com/ipedrazas/9c622404fb41f2343a0db85b3821275d&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>ArgoCD cli login command</title><link>https://luiscachog.io/garden/argocd-cli-login/</link><pubDate>Wed, 17 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/argocd-cli-login/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">argocd login &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>--insecure &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>--grpc-web &lt;span class="k">$(&lt;/span>oc get route openshift-gitops-server -n openshift-gitops
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-o &lt;span class="nv">jsonpath&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;{.spec.host}{&amp;#34;\n&amp;#34;}&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>--username admin &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>--password &lt;span class="k">$(&lt;/span>oc get secret/openshift-gitops-cluster -n openshift-gitops -o &lt;span class="nv">jsonpath&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;{.data.admin\.password}&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span> base64 -d&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Delete OpenShift Operator</title><link>https://luiscachog.io/garden/delete-openshift-operator/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/delete-openshift-operator/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mockup commands&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get subscription &amp;lt;operator&amp;gt; -n openshift-operators -o yaml &lt;span class="p">|&lt;/span> grep
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">currentCSV
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc delete subscription &amp;lt;operator&amp;gt; -n openshift-operators
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc delete clusterserviceversion &amp;lt;currentCSV&amp;gt; -n openshift-operators
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Example commands
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc delete subscription jaeger -n openshift-operators
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc delete clusterserviceversion jaeger-operator.v1.8.2 -n openshift-operators
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Delete OpenShift Project</title><link>https://luiscachog.io/garden/delete-openshift-project/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/delete-openshift-project/</guid><description>&lt;ul>
&lt;li>Issue, can&amp;rsquo;t delete a namespace/project and is stuck in a &amp;ldquo;Terminating&amp;rdquo; status&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc delete project fishbone
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get projects fishbone
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">NAME DISPLAY NAME STATUS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">fishbone Fishbone Terminating
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>
&lt;p>Solution&lt;/p>
&lt;ul>
&lt;li>Define the namespace/project to delete&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">NAMESPACE&lt;/span>&lt;span class="o">=&lt;/span>fishbone
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Cleanup the finalizers section from the namespace definition and define a json file with that&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get namespace &lt;span class="nv">$NAMESPACE&lt;/span> -o&lt;span class="o">=&lt;/span>json &lt;span class="p">|&lt;/span> jq &lt;span class="s1">&amp;#39;.spec = {&amp;#34;finalizers&amp;#34;:[]}&amp;#39;&lt;/span> &amp;gt; &lt;span class="nv">$NAMESPACE&lt;/span>.json
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;apiVersion&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;v1&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;Namespace&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;metadata&amp;#34;&lt;/span>: &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;annotations&amp;#34;&lt;/span>:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/description&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/display-name&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;Fishbone&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/requester&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;system:admin&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/sa.scc.mcs&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;s0:c24,c14&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/sa.scc.supplemental-groups&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;1000580000/10000&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;openshift.io/sa.scc.uid-range&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;1000580000/10000&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;creationTimestamp&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;2021-02-20T03:29:59Z&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;deletionTimestamp&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;2021-02-20T03:31:35Z&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;fishbone&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;resourceVersion&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;270664&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;selfLink&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;/api/v1/namespaces/fishbone&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;uid&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;885c4440-6f05-4e72-a103-28e61705406f&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;spec&amp;#34;&lt;/span>: &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;finalizers&amp;#34;&lt;/span>: &lt;span class="o">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;kubernetes&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;status&amp;#34;&lt;/span>: &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;conditions&amp;#34;&lt;/span>: &lt;span class="o">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">]&lt;/span>,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;phase&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;Terminating&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Apply the json file from the previous step to delete the finalizers and therefore the deletion of the namespace/project&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">curl -k -H &lt;span class="s2">&amp;#34;authorization: Bearer &lt;/span>&lt;span class="k">$(&lt;/span>oc whoami --show-token&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -H &lt;span class="s2">&amp;#34;Content-Type: application/json&amp;#34;&lt;/span> -X PUT --data-binary @&lt;span class="nv">$NAMESPACE&lt;/span>.json &lt;span class="k">$(&lt;/span>oc whoami --show-server&lt;span class="k">)&lt;/span>/api/v1/namespaces/&lt;span class="nv">$NAMESPACE&lt;/span>/finalize
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Verify that the namspace/project has been deleted&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get projects &lt;span class="nv">$NAMESPACE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error from server &lt;span class="o">(&lt;/span>NotFound&lt;span class="o">)&lt;/span>: namespaces &lt;span class="s2">&amp;#34;fishbone&amp;#34;&lt;/span> not found
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Kubernetes Advanced Topics&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/li>
&lt;li>Kubernetes Namespace Stuck&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/li>
&lt;li>Red Hat article[^3]&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#advanced-topics" target="_blank" rel="noopener">https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#advanced-topics&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>&lt;a href="https://success.mirantis.com/article/kubernetes-namespace-stuck-in-terminating" target="_blank" rel="noopener">https://success.mirantis.com/article/kubernetes-namespace-stuck-in-terminating&lt;/a>
[^3]:&lt;a href="https://www.redhat.com/sysadmin/troubleshooting-terminating-namespaces" target="_blank" rel="noopener">https://www.redhat.com/sysadmin/troubleshooting-terminating-namespaces&lt;/a>&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>How to Retrieve secrets values</title><link>https://luiscachog.io/garden/retrieve-secrets-values/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/retrieve-secrets-values/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get secret my-secret -n my-project --template&lt;span class="o">={{&lt;/span>.data.my-secret-key&lt;span class="o">}}&lt;/span> &lt;span class="p">|&lt;/span> base64 -d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get secret my-secret -n my-project -o go-template --template&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;{{.data.my-secret-key|base64decode}}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc extract secrets/my-secret -n my-project
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get secret my-secret -n my-project -o &lt;span class="nv">jsonpath&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;{.data[&amp;#39;tls\.key&amp;#39;]}&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> base64 -d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>How to test the OpenShift Cluster and Machine Autoscaler</title><link>https://luiscachog.io/garden/test-openshift-autoscaler/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/test-openshift-autoscaler/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="l">oc new-project work-queue&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">echo &amp;#39;apiVersion&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">batch/v1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">kind&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Job&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">metadata&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">generateName&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">work-queue-&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">spec&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">template&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">spec&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">tolerations&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">effect&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">NoSchedule&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">node-role.kubernetes.io/infra&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">reserved&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">effect&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">NoExecute&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">node-role.kubernetes.io/infra&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">reserved&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">containers&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">work&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">busybox&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">command&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;sleep&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;300&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">resources&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">requests&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">memory&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">2Gi&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">cpu&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">4&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restartPolicy&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Never&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">parallelism&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">50&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">completions&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">250&lt;/span>&lt;span class="l">&amp;#39; | oc create -f - -n work-queue&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc get jobs -n work-queue&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc get pods -n work-queue &lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc get machineset -n openshift-machine-api&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc get machines -n openshift-machine-api&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc get nodes&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">oc delete project work-queue&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>How to list the taints on kubernetes nodes</title><link>https://luiscachog.io/garden/list-node-taints/</link><pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/list-node-taints/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get nodes -o json &lt;span class="p">|&lt;/span> jq &lt;span class="s1">&amp;#39;.items[].spec.taints&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc get nodes -o json &lt;span class="p">|&lt;/span> jq &lt;span class="s1">&amp;#39;.items[] | {node_name:.metadata.name,taints:.spec.taints[]?}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">oc get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">get nodes -o=jsonpath=&amp;#39;&lt;/span>&lt;span class="o">{&lt;/span>range .items&lt;span class="o">[&lt;/span>*&lt;span class="o">]}{&lt;/span>.metadata.name&lt;span class="o">}{&lt;/span>&lt;span class="s2">&amp;#34;\t&amp;#34;&lt;/span>&lt;span class="o">}{&lt;/span>.spec.taints&lt;span class="o">}{&lt;/span>&lt;span class="s2">&amp;#34;\n&amp;#34;&lt;/span>&lt;span class="o">}{&lt;/span>end&lt;span class="o">}&lt;/span>&lt;span class="err">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> StackOverflow&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>]: &lt;a href="https://stackoverflow.com/questions/43379415/how-can-i-list-the-taints-on-kubernetes-nodes" target="_blank" rel="noopener">https://stackoverflow.com/questions/43379415/how-can-i-list-the-taints-on-kubernetes-nodes&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>OpenID autodiscovery URL integration in OpenShift</title><link>https://luiscachog.io/garden/openid-integration-openshift/</link><pubDate>Mon, 23 May 2022 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/openid-integration-openshift/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Discover the available URLs from your autodiscovery URL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl https://&amp;lt;idp_host&amp;gt;/.well-known/openid-configuration
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">CLIENT_SECRET&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>oc get secret -n openshift-config my-id-secret my-id-secret -o &lt;span class="nv">jsonpath&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;{.items[0].data.clientSecret}&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span> base64 -D&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -s -X POST https://&amp;lt;idp_host&amp;gt;/idp/userinfo.openid -H &lt;span class="s1">&amp;#39;content-type: application/x-www-form-urlencoded&amp;#39;&lt;/span> -d &lt;span class="s2">&amp;#34;client_id=ocp4testawsuswest2QA&amp;amp;client_secret=&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">CLIENT_SECRET&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;amp;access_token=&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ACCESS_TOKEN&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> jq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>References:&lt;/strong>
- &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> &lt;a href="https://access.redhat.com/solutions/4605141" target="_blank" rel="noopener">https://access.redhat.com/solutions/4605141&lt;/a>&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://access.redhat.com/solutions/4605141" target="_blank" rel="noopener">https://access.redhat.com/solutions/4605141&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>How to access an OpenShift 4 Node</title><link>https://luiscachog.io/garden/access-ocp4-node/</link><pubDate>Thu, 16 Sep 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/access-ocp4-node/</guid><description>&lt;p>In order to review the underline node, you need to follow the next steps:&lt;/p>
&lt;ul>
&lt;li>Get the node name that is having issues or your need to login&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc get nodes
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Run the &lt;code>oc debug&lt;/code> command into the node&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc debug node/ip-10-0-129-255.us-east-2.compute.internal
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Once you are logged in the node, you&amp;rsquo;ll need to run:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">chroot /host
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> OCP4 Documentation&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://docs.openshift.com/container-platform/4.10/support/gathering-cluster-data.html#support-collecting-network-trace_gathering-cluster-data" target="_blank" rel="noopener">https://docs.openshift.com/container-platform/4.10/support/gathering-cluster-data.html#support-collecting-network-trace_gathering-cluster-data&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Get ServiceAccount token for MTC</title><link>https://luiscachog.io/garden/get-token-mtc/</link><pubDate>Fri, 06 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/get-token-mtc/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc sa get-token migration-operator -n openshift-migration
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Command to perform a curl to a PodIP</title><link>https://luiscachog.io/garden/curl-podip/</link><pubDate>Thu, 05 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/curl-podip/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">curl &lt;span class="k">$(&lt;/span>oc get pod &amp;lt;pod-name&amp;gt; --template &lt;span class="err">&amp;#39;&lt;/span>&lt;span class="o">{{&lt;/span> .status.podIP&lt;span class="o">}}&lt;/span>&lt;span class="k">)&lt;/span>:8080
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Approve pending CSRs in OpenShift</title><link>https://luiscachog.io/garden/approve-csr-openshift/</link><pubDate>Wed, 04 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/approve-csr-openshift/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> id in &lt;span class="k">$(&lt;/span>oc get csr &lt;span class="p">|&lt;/span> grep Pending &lt;span class="p">|&lt;/span> awk &lt;span class="s1">&amp;#39;{print $1}&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span> oc adm certificate approve &lt;span class="nv">$id&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Get OpenShift Console URL</title><link>https://luiscachog.io/garden/openshift-console-url/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/openshift-console-url/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">oc whoami --show-console
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oc -n openshift-console get routes
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Relaunch docker-compose deployment with a new image</title><link>https://luiscachog.io/garden/relaunch-docker-compose-deploy/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/relaunch-docker-compose-deploy/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">docker-compose pull &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> docker-compose -f docker-compose.yml up -d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Restart an Istio deployment</title><link>https://luiscachog.io/garden/restart-istio/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/restart-istio/</guid><description>&lt;ul>
&lt;li>Error:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">MountVolume.SetUp failed &lt;span class="k">for&lt;/span> volume &lt;span class="s2">&amp;#34;istiod-ca-cert&amp;#34;&lt;/span> : configmap &lt;span class="s2">&amp;#34;istio-ca-root-cert&amp;#34;&lt;/span> not found
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Fix:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">kubectl rollout restart deployment istiod -n istio-system
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Istio debug commands</title><link>https://luiscachog.io/garden/debug-istio/</link><pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/debug-istio/</guid><description>&lt;ul>
&lt;li>Istio Pods&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">kubectl get pods -n istio-system
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Istio Logs&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">kubectl logs -n istio-system -l &lt;span class="nv">app&lt;/span>&lt;span class="o">=&lt;/span>istiod
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Istio Analize&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">istioctl analyze
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Istio Proxy Status&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">istioctl proxy-status
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Kubernetes debug commands</title><link>https://luiscachog.io/garden/debug-k8s/</link><pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/debug-k8s/</guid><description>&lt;ul>
&lt;li>Kubernetes error messages&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">kubectl get events -n kube-system
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Kubernetes pods logs&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">stern prox -n kube-system
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Debug with busybox&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">kubectl run --generator&lt;span class="o">=&lt;/span>run-pod/v1 -i --tty busybox --image&lt;span class="o">=&lt;/span>busybox --restart&lt;span class="o">=&lt;/span>Never -- sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>CodeReady Containers commands</title><link>https://luiscachog.io/garden/codeready-containers/</link><pubDate>Tue, 20 Jul 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/codeready-containers/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">crc config view &lt;span class="c1"># View Actual config&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> autostart-tray &lt;span class="nb">false&lt;/span> &lt;span class="c1"># Disable autostart&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> consent-telemetry &lt;span class="nb">false&lt;/span> &lt;span class="c1"># Disable telemetry&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> enable-cluster-monitoring &lt;span class="nb">true&lt;/span> &lt;span class="c1"># Enable Monitoring, needs more memory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> host-network-access &lt;span class="nb">true&lt;/span> &lt;span class="c1"># Enable TCP/IP connections&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> kubeadmin-password &lt;span class="nv">$MY_PASSW0RD&lt;/span> &lt;span class="c1"># Define my own kubeadmin-password&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> memory 14336 &lt;span class="c1"># Increase Memory to 14GB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc config &lt;span class="nb">set&lt;/span> pull-secret-file &lt;span class="nv">$PATH_TO_PULL_SECRET_FILE&lt;/span> &lt;span class="c1"># Path to a pull-secret file (download from https://cloud.redhat.com/openshift/create/local)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc setup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc start
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc ip
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">crc stop
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Upload Image to a Registry with Podman</title><link>https://luiscachog.io/garden/upload-image-to-registry-podman/</link><pubDate>Tue, 20 Jul 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/upload-image-to-registry-podman/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">sudo podman pull docker.io/library/alpine
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo podman push docker.io/library/alpine --tls-verify&lt;span class="o">=&lt;/span>&lt;span class="nb">false&lt;/span> &amp;lt;KUBE_REGISTRY_ROUTE&amp;gt;/alpine
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Wait for pod to be ready</title><link>https://luiscachog.io/garden/wait-for-pod-to-be-ready/</link><pubDate>Thu, 15 Jul 2021 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/wait-for-pod-to-be-ready/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">POD_NAME&lt;/span>&lt;span class="o">=&lt;/span>hello-d8d8d7455-j9nzw
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="k">$(&lt;/span>oc get pods &lt;span class="nv">$POD_NAME&lt;/span> -o &lt;span class="s1">&amp;#39;jsonpath={..status.conditions[?(@.type==&amp;#34;Ready&amp;#34;)].status}&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;True&amp;#34;&lt;/span> &lt;span class="o">]]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;waiting for pod&amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> sleep 1&lt;span class="p">;&lt;/span> &lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>If you want to wait until all the pods with a common label you can do:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="k">$(&lt;/span>kubectl get pods -l &lt;span class="nv">app&lt;/span>&lt;span class="o">=&lt;/span>hello -o &lt;span class="s1">&amp;#39;jsonpath={..status.conditions[?(@.type==&amp;#34;Ready&amp;#34;)].status}&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;True&amp;#34;&lt;/span> &lt;span class="o">]]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;waiting for pod&amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> sleep 1&lt;span class="p">;&lt;/span> &lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>OpenShift MigMigration</title><link>https://luiscachog.io/garden/cloud-native/openshift.mtc.migmigration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://luiscachog.io/garden/cloud-native/openshift.mtc.migmigration/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl"> oc get migmigrations.migration.openshift.io &amp;lt;mig-migration-plan&amp;gt; -n openshift-migration -o go-template&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;{{.status.phase}}{{ println }}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item></channel></rss>