login to the repository:
[home@home ~]$ skopeo login --username $USER docker.io Password: Login Succeeded!
Copy:
skopeo copy -a docker://nginx docker://$USER/nginx
#!/bin/bash
u_time=$(date +%s)
list_of_namespaces=$(kubectl get ns | awk '{print $1}' | sed 1d)
worker_node_list=$(kubectl get nodes --label-columns beta.kubernetes.io/instance-type --label-columns karpenter.sh/capacity-type -l role=worker | awk '{print $1}' | sed 1d)
for namespace in $list_of_namespaces
do
echo "================$namespace=================="
list_of_deploy=$(kubectl get deploy -n $namespace | awk '{print $1}' | sed 1d)
for deploy in $list_of_deploy
do
if [ "$(kubectl get deploy $deploy -n $namespace -o yaml | grep nodeSelector -A 1 | grep role | awk '{print $NF}')" = "worker-arm64" ]
then
echo "$deploy,$namespace,true"
echo "$deploy,$namespace,true" >> prod_deploy_arm64_$u_time.list
else
echo "$deploy,$namespace,false"
echo "$deploy,$namespace,false" >> prod_deploy_arm64_$u_time.list
fi
done
done
wsl --update
[automount]
options = "metadata"
[boot]
systemd=true
wsl --shutdown
apt install nginx -y
systemctl status nginx
#OR you can install docker directly in WSL
wsl -l
wsl -l -v
nginx-chart-files/
├── index.yaml
├── nginx-0.1.0.tgz
└── nginx-0.2.0.tgz
Generate manifest:
helm template ./direcotry -f values.yaml --output-dir output_dir
helm template ./direcotry -f values.yml
#render in stdout
helm template ./direcotry -f values.yaml --dry-run
helm package ./direcotry_path
apiVersion: {{ template "controller.apiVersion" . }}
kind: {{ .Values.controller.kind }}
metadata:
labels:
{{ $labels | indent 4 }}
name: {{ $name }}
namespace: {{ $.Release.Namespace }}
---
spec:
{{- with .Values.controller.hostAliases }}
hostAliases:
{{ toYaml . | indent 8 }}
{{- end }}
---
values.yml
controller:
create: true
kind: Deployment
---
terminationGracePeriodSeconds: 30
hostAliases:
- hostnames:
- example.com
ip: 127.0.0.1
index.html
apiVersion: v1
entries:
nginx:
- apiVersion: v2
appVersion: 1.16.0
created: "2021-07-03T21:59:00.34571153-04:00"
digest: b22a325b03c8e88b6a6a8d1a8e79f5d0498813855174a983426466b6de5a5f71
maintainers:
- email: [email protected]
name: John Smith
name: nginx
type: application
urls:
- https://example.com/charts/nginx-0.1.0.tgz
version: 0.1.0
- apiVersion: v2
appVersion: 1.17.0
created: "2021-07-03T21:59:00.34571153-04:00"
digest: b22a325b03c8e88b6a6a8d1a8e79f5d0498813855174a983426466b6de5a5f71
maintainers:
- email: [email protected]
name: John Smith
name: nginx
type: application
urls:
- https://example.com/charts/nginx-0.2.0.tgz
version: 0.2.0
psql -h example.com -U root -d postgres
-h = hostname
-U = Username
-d = database
It will ask for a password.
\l
2.Connect to database
\c database_name
3. List tables
\dt
4. Select and delete
select * from basicauth_credentials where username = '[email protected]';
delete from basicauth_credentials where username = '[email protected]';
ps -ef | grep process_name
#stdout
tail -f /proc/<process_id>/fd/1
#stderror
tail -f /proc/<process_id>/fd/2
add_header Set-Cookie "Path=/; HttpOnly; Secure";
Developer tool > Application > Storage > Cookies
#ARM64
arm64_image_digest=$(docker manifest inspect nginx | jq '.manifests[] | select(.platform.architecture == "arm64")' | jq '.digest'| sed 's/"//g')
#AMD64
amd64_image_digest=$(docker manifest inspect nginx | jq '.manifests[] | select(.platform.architecture == "arm64")' | jq '.digest'| sed 's/"//g')
docker tag nginx your-username/nginx:amd64
docker tag nginx your-username/nginx:arm64
docker push your-username/nginx:amd64
docker push your-username/nginx:arm64
docker manifest create \
your-username/nginx:latest \
--amend your-username/nginx:amd64 \
--amend your-username/nginx:arm64
docker manifest push your-username/nginx:latest
https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
export DOCKER_BUILDKIT=1
docker buildx create --use
docker buildx build --push --platform linux/arm64,linux/amd64 -t httpd-custom .
docker buildx stop
docker buildx rm
##10 0.064 .buildkit_qemu_emulator: /bin/sh: Invalid ELF image for this architecture
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx rm builder
docker buildx create --name builder --driver docker-container --use
docker buildx inspect --bootstrap
set-x
= print actual shell command
set -f
= disable filename expansion [ ls *.yml
]
errexit
= fails all script if any exit code arrives
pipefail
= Failes multi Pipe statement if any false statement
set -x -f -o errexit -o pipefail
set +x +f +e
https://stackoverflow.com/questions/68465355/what-is-the-meaning-of-set-o-pipefail-in-bash-script
https://www.newline.co/courses/newline-guide-to-bash-scripting/errexit
https://unix.stackexchange.com/questions/333867/what-does-set-f-in-korn-shell-do