General

Default DNS service url

<service-name>.<namespace>.svc.cluster.local:<service-port>

Debugging

Find pods that have a string in the definition

k get pods -n prod | awk '{print $1}' | xargs -I@ bash -c "echo '@'; kubectl describe pod -n prod @ | grep mongo; echo -e '\n\n\n'"

Force kill pod 🔪

k delete pod -n NAMESPACE POD_NAME --grace-period=0 --force

Find POD by IP

10.117.14.6810.117.31.63

Run busybox

kubectl run -i --tty busybox --image=busybox --restart=Never -- sh

Run container just to entry bash

k run my-debug --image=<docker image uri> --command sleep -- 3600
# and then
k get pods
k exec -it my-debug-eacae012 bash

and debug...

Configuration

Merge two kubeconfig files

cp ~/.kube/config ~/.kube/config.bak && KUBECONFIG=~/.kube/config:/path/to/new/config kubectl config view --flatten > /tmp/config && mv /tmp/config ~/.kube/config

Secrets

Mount secret value as an environment variable

  1. Create secret env as string:
    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret
    type: Opaque
    stringData:
        WSO2_CLOUD_ORG_KEY: "mycompany"
        WSO2_CLOUD_EMAIL: "sample-email@wso2.com"
        WSO2_CLOUD_PASSWORD: "password"
    
    kubectl apply -f mysecret.yaml
    
  2. Use in Deployment:
    env: 
    - name: WSO2_CLOUD_ORG_KEY
        valueFrom:
        secretKeyRef:
            name: mysecret
            key: WSO2_CLOUD_ORG_KEY
    
  3. For usage in kubeflow pipelines:
    some_op.add_env_variable(
        V1EnvVar(
            name="WANDB_API_KEY",
            value_from=V1EnvVarSource(
                secret_key_ref=V1SecretKeySelector(
                    "WANDB_API_KEY", "wandb-api-key", optional=False
                )
            ),
        )
    )
    

Switch contexts

kubectl config current-context
kubectl config use-context <context_name>

Helm

Access values of nested helm charts with dash in name

E.g. you have mysub-chart subchart, then:

mysub-chart:
  servicename: mysubchart-service

# Then in Helm Chart
{{ index .Values "mysub-chart" "servicename" }}

# If used multiple times just do:
{{- $flyteValues := index .Values "flyte-binary" }}
# At the top of the file and use this #flyteValues variable
No matches...