this decision:
​
|**FEATURES**|**SELF-HOSTED GITLAB**|**SAAS GITLAB**|
|:-|:-|:-|
|Price|**+**|**-**|
|Support|**-**|**+**|
|Logs|**+**|**-**|
|Administration|**+**|**-**|
|Full access to the API|**+**|**-**|
|Privacy|**+**|**-**|
While Self-Hosted GitLab provides more options, it requires you to have your own support.
## Results
For a modest amount of money, the client received git hosting (GitLab CE), which is slightly inferior in functionality to the premium version of SaaS in some aspects but is generally suitable for work.
If you have a large team and are not willing to pay over $10,000 per year, working with self-hosted GitLab is for you. Of course, such a choice will oblige you to deal with support, allocate additional time for engineers, and the responsibility for the work of GitLab will be entirely on the DevOps team, but this can save you a lot of money.
If you have a small team and don't want to spend time maintaining git hosting, SaaS is a great option. You can get an out-of-the-box, working solution by buying a subscription rather than worrying about infrastructure.
https://redd.it/11nr4gv
@r_devops
​
|**FEATURES**|**SELF-HOSTED GITLAB**|**SAAS GITLAB**|
|:-|:-|:-|
|Price|**+**|**-**|
|Support|**-**|**+**|
|Logs|**+**|**-**|
|Administration|**+**|**-**|
|Full access to the API|**+**|**-**|
|Privacy|**+**|**-**|
While Self-Hosted GitLab provides more options, it requires you to have your own support.
## Results
For a modest amount of money, the client received git hosting (GitLab CE), which is slightly inferior in functionality to the premium version of SaaS in some aspects but is generally suitable for work.
If you have a large team and are not willing to pay over $10,000 per year, working with self-hosted GitLab is for you. Of course, such a choice will oblige you to deal with support, allocate additional time for engineers, and the responsibility for the work of GitLab will be entirely on the DevOps team, but this can save you a lot of money.
If you have a small team and don't want to spend time maintaining git hosting, SaaS is a great option. You can get an out-of-the-box, working solution by buying a subscription rather than worrying about infrastructure.
https://redd.it/11nr4gv
@r_devops
Reddit
r/devops on Reddit: How Do We Save about ~$10,000 a Year Using Self-Hosted GitLab
Posted by u/darikanur - No votes and 1 comment
Opinions on Hashicorp Nomad?
Has anyone used it? What are your thoughts?
https://redd.it/11nsxo3
@r_devops
Has anyone used it? What are your thoughts?
https://redd.it/11nsxo3
@r_devops
Reddit
r/devops on Reddit: Opinions on Hashicorp Nomad?
Posted by u/k2718 - No votes and 2 comments
Feeling pretty down/demoralized. Any suggestions on easy wins for my team?
In charge of the DevOps team that’s part of a dev org touched by layoffs about a month ago.
Was everyone’s first time experiencing something like that. Anxiety and nervousness have been almost palpable while we’ve kind of just been attempting to run the same org without a lot of the teammates we cared about.
Been trying to figure out some easy wins for myself and the broader team to try and feel like progress is being made. Any and all suggestions welcome.
https://redd.it/11nttd2
@r_devops
In charge of the DevOps team that’s part of a dev org touched by layoffs about a month ago.
Was everyone’s first time experiencing something like that. Anxiety and nervousness have been almost palpable while we’ve kind of just been attempting to run the same org without a lot of the teammates we cared about.
Been trying to figure out some easy wins for myself and the broader team to try and feel like progress is being made. Any and all suggestions welcome.
https://redd.it/11nttd2
@r_devops
Reddit
r/devops on Reddit: Feeling pretty down/demoralized. Any suggestions on easy wins for my team?
Posted by u/robustquorum09 - No votes and 1 comment
Weird override experience on Pagerduty (compared with Opsgenie)
Imagine there are a couple of overrides defined in the schedule (like Person-A coordinated with Person-M to swap their oncall using override for their weeks, and so on).
Now if someone deletes an override, all future overrides shifts left and thus changing the people originally overriding the oncalls. In some weird cases, it's also possible that Person-A overrides their own shift.
This can be annoying especially if a person has spent some time to find their overrides, and with the updates to the other overrides, it's possible that you might not have any overrides in a short period of time (lets say).
Opsgenie on the other hand treats overrides just like how u expect them to be. If you override with someone for a given week, it will stay the same regardless of whether other overrides are deleted or not.
If anyone has come across this, please share your experience and/or any solution to this problem. Thank you.
PS: Not making this up. Experienced it myself and was not able to find any online help on this topic.
https://redd.it/11nsqfd
@r_devops
Imagine there are a couple of overrides defined in the schedule (like Person-A coordinated with Person-M to swap their oncall using override for their weeks, and so on).
Now if someone deletes an override, all future overrides shifts left and thus changing the people originally overriding the oncalls. In some weird cases, it's also possible that Person-A overrides their own shift.
This can be annoying especially if a person has spent some time to find their overrides, and with the updates to the other overrides, it's possible that you might not have any overrides in a short period of time (lets say).
Opsgenie on the other hand treats overrides just like how u expect them to be. If you override with someone for a given week, it will stay the same regardless of whether other overrides are deleted or not.
If anyone has come across this, please share your experience and/or any solution to this problem. Thank you.
PS: Not making this up. Experienced it myself and was not able to find any online help on this topic.
https://redd.it/11nsqfd
@r_devops
Reddit
r/devops on Reddit: Weird override experience on Pagerduty (compared with Opsgenie)
Posted by u/vikrantverma - 2 votes and 1 comment
We created a free AI Code Assistant that understands context
Hey devops folks!
I want to share Safurai's AI Code Assistant - available for VS Code at **www.safurai.com**!
Our code assistant is the ultimate tool for anyone looking to streamline their coding experience. And it's completely free (we'll monetize on enterprises in the future).
Safurai can understand your project, remember past questions and is fine-tuned (thanks to our own models) to give you the best possible results.
If you've ever spent hours trying to debug your code or searching for the right solution, you know how frustrating it can be. With Safurai's AI Code Assistant, you can get personalized and contextual code recommendations based on your specific project needs - saving you time and energy. We believe that coding should be accessible and user-friendly, and our new AI Code Assistant brings that vision to life.
We're just looking for feedback - let me know if you have any :)
https://redd.it/11nxsmg
@r_devops
Hey devops folks!
I want to share Safurai's AI Code Assistant - available for VS Code at **www.safurai.com**!
Our code assistant is the ultimate tool for anyone looking to streamline their coding experience. And it's completely free (we'll monetize on enterprises in the future).
Safurai can understand your project, remember past questions and is fine-tuned (thanks to our own models) to give you the best possible results.
If you've ever spent hours trying to debug your code or searching for the right solution, you know how frustrating it can be. With Safurai's AI Code Assistant, you can get personalized and contextual code recommendations based on your specific project needs - saving you time and energy. We believe that coding should be accessible and user-friendly, and our new AI Code Assistant brings that vision to life.
We're just looking for feedback - let me know if you have any :)
https://redd.it/11nxsmg
@r_devops
Is there like a ELI5 for Hashicorp Consul for someone who is not using kubernetes but rather docker compose?
I have been trying to wrap around what Hashicorp Consul does but I just cannot join the dots with my home lab where at the moment I have Pi-4s that are running docker compose files?
Is Consul NOT meant for compose?
https://redd.it/11nvyqa
@r_devops
I have been trying to wrap around what Hashicorp Consul does but I just cannot join the dots with my home lab where at the moment I have Pi-4s that are running docker compose files?
Is Consul NOT meant for compose?
https://redd.it/11nvyqa
@r_devops
Reddit
r/devops on Reddit: Is there like a ELI5 for Hashicorp Consul for someone who is not using kubernetes but rather docker compose?
Posted by u/dugindeep - No votes and 2 comments
Feeling burnt out
Good day y’all.
Im feeling a bit… run down. A little bit, tired, exhausted and generally feel beaten.
I’m a senior Devops engineer, I do everthing you’d expect me to do. I’m happy where I am, great people, great company, but there are a few things that’s driving me into the ground.
The first thing is meetings. Oh meetings. My day is probably 50 - 70% meetings. Meetings that could easily be a note or message in teams. I’m told I’m needed, and I ask for the reasoning. When I don’t get it, I decline. When I decline I’m bombarding with messages on teams asking why. Ugh. So I join.
Last week I was asked why I declined a meeting, even though my calendar said I was free. Like… what?! Just because the calendar has a free slot, doesn’t mean I’m available. I have work do. If I’m in meetings all the time, I’ll never get work done… which I don’t.
Secondly. Everything is urgent to everyone. I’m exhausted. I have projects to get out, which are urgent, and I’m fighting fires.
Last but not least, my team, they’re great people, but boy they do not understand …. Anything. I have to hold their hands on everything. Asking me about errors that could be easily googled. Asking me how to do X in bash. How to do Y in Kubernetes. Guys, use your initiative and go and do your own research.
I feel like I’m drowning.
Devs don’t care about how to support their application whilst it’s in production. They don’t care about the disparate characteristics of VMs and pods, so code is a complete mess and doesn’t function correctly in Kubernetes. (Why are we running hour long synchronous processes in a pod and wondering why clients complain when the autoscaler kills it)
Im just, burnt out I think. I need some encouragement.
https://redd.it/11o18cn
@r_devops
Good day y’all.
Im feeling a bit… run down. A little bit, tired, exhausted and generally feel beaten.
I’m a senior Devops engineer, I do everthing you’d expect me to do. I’m happy where I am, great people, great company, but there are a few things that’s driving me into the ground.
The first thing is meetings. Oh meetings. My day is probably 50 - 70% meetings. Meetings that could easily be a note or message in teams. I’m told I’m needed, and I ask for the reasoning. When I don’t get it, I decline. When I decline I’m bombarding with messages on teams asking why. Ugh. So I join.
Last week I was asked why I declined a meeting, even though my calendar said I was free. Like… what?! Just because the calendar has a free slot, doesn’t mean I’m available. I have work do. If I’m in meetings all the time, I’ll never get work done… which I don’t.
Secondly. Everything is urgent to everyone. I’m exhausted. I have projects to get out, which are urgent, and I’m fighting fires.
Last but not least, my team, they’re great people, but boy they do not understand …. Anything. I have to hold their hands on everything. Asking me about errors that could be easily googled. Asking me how to do X in bash. How to do Y in Kubernetes. Guys, use your initiative and go and do your own research.
I feel like I’m drowning.
Devs don’t care about how to support their application whilst it’s in production. They don’t care about the disparate characteristics of VMs and pods, so code is a complete mess and doesn’t function correctly in Kubernetes. (Why are we running hour long synchronous processes in a pod and wondering why clients complain when the autoscaler kills it)
Im just, burnt out I think. I need some encouragement.
https://redd.it/11o18cn
@r_devops
Reddit
r/devops on Reddit: Feeling burnt out
Posted by u/AChickenWithPHD - No votes and 1 comment
How are you handling Terraform & Dev accounts?
Curious to how others are enforcing their engineers to go through Terraform when creating resources in a Dev or any lower env account.
The number one complaint I get is, "writing everything through Terraform is slow" and they'd rather experiment quickly on the console, then move onto Terraform.
However, we need some type of process in place.
I want to restrict people from doing changes through the console, but at the same time, I don't want to hamper their ability to POC or experiment.
Any ideas?
https://redd.it/11o0gos
@r_devops
Curious to how others are enforcing their engineers to go through Terraform when creating resources in a Dev or any lower env account.
The number one complaint I get is, "writing everything through Terraform is slow" and they'd rather experiment quickly on the console, then move onto Terraform.
However, we need some type of process in place.
I want to restrict people from doing changes through the console, but at the same time, I don't want to hamper their ability to POC or experiment.
Any ideas?
https://redd.it/11o0gos
@r_devops
Reddit
r/devops on Reddit: How are you handling Terraform & Dev accounts?
Posted by u/benaffleks - No votes and 8 comments
Scaling java deployment on Kubernetes based on heap memory utilization?
How to monitor and trigger scaling on heap memory utilization? If my heap memory average utilization across pods is set to like 2GB I want to scale if heap memory gets to like 80% as I'm seeing heap space issues.
https://redd.it/11o3t0x
@r_devops
How to monitor and trigger scaling on heap memory utilization? If my heap memory average utilization across pods is set to like 2GB I want to scale if heap memory gets to like 80% as I'm seeing heap space issues.
https://redd.it/11o3t0x
@r_devops
Reddit
r/devops on Reddit: Scaling java deployment on Kubernetes based on heap memory utilization?
Posted by u/edmguru - No votes and no comments
Container Certification
I'm debating between CKA and a Red Hat Containerization cert. Is there any strong argument to go with Red hat as opposed to CKA?
I'm a non-IT guy looking to break into DevOps or SRE. For what it's worth, I have RHCSA, doing Sec+ exam in a couple of days, and doing RHCE exam in a couple of weeks. I'm already leaning Red Hat for the purposes of working toward RHCA in Dev Ops or Open Hybrid Cloud.
https://redd.it/11nuq66
@r_devops
I'm debating between CKA and a Red Hat Containerization cert. Is there any strong argument to go with Red hat as opposed to CKA?
I'm a non-IT guy looking to break into DevOps or SRE. For what it's worth, I have RHCSA, doing Sec+ exam in a couple of days, and doing RHCE exam in a couple of weeks. I'm already leaning Red Hat for the purposes of working toward RHCA in Dev Ops or Open Hybrid Cloud.
https://redd.it/11nuq66
@r_devops
Reddit
r/devops on Reddit: Container Certification
Posted by u/Jbnels2 - No votes and 4 comments
How to Cache Gatsby Builds with Docker in GitHub Actions
At DoltHub, we just sped up our blog deployment time by caching Gatsby builds with Docker in GitHub Actions. Here's a post explaining how we did it. https://www.dolthub.com/blog/2023-03-10-caching-gatsby-builds-with-docker-in-github-actions/
https://redd.it/11ntu5h
@r_devops
At DoltHub, we just sped up our blog deployment time by caching Gatsby builds with Docker in GitHub Actions. Here's a post explaining how we did it. https://www.dolthub.com/blog/2023-03-10-caching-gatsby-builds-with-docker-in-github-actions/
https://redd.it/11ntu5h
@r_devops
Dolthub
Caching Gatsby builds with Docker in GitHub Actions
Blog for DoltHub, a website hosting databases made with Dolt, an open-source version-controlled SQL database with Git-like semantics.
Help me understand networking of kubernetes + wireguard
So, here’s the situation:
I have 3 virtual machines(HyperV), let’s call them A,B and C on my computer.
I also have 2 VMs set up on Azure, let's call them D and E, so I thought it would be cool idea to setup a VPN using wireguard to create a private network for all of those machines. I've created 192.168.20.0/24 private subnet using those configs:
Interface
PrivateKey = <privatekey>
Address = 192.168.10.3/24
ListenPort = 51194
SaveConfig = false
PostUp = /etc/wireguard/helper/add-nat-routing.sh
PostDown = /etc/wireguard/helper/remove-nat-routing.sh
Peer
PublicKey = <pubkey>
AllowedIPs = 192.168.10.2/32
<other peers...>
On the server(machine D).
And
Interface
PrivateKey = <private key>
Address = 192.168.10.2/24
Peer
PublicKey = <pubkey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip address>:51194
PersistentKeepalive = 15
On the client(machine A).
​
Everything worked smoothly, but then I wanted to create a kubernetes cluster(my first time ever) on machine A. I used
​
sudo kubeadm init --pod-network-cidr=192.168.10.0/24
and that's when the problems started. I was no longer able to connect/ping from machine D to A, and vice versa. I figured out that there has to be a problem with iptables, and after some looking I figured out that packets are being dropped because of
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
Mark "0x8000/0x8000" seems to be set in
​
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
except... there's no rule that would actually jump there! This left me rather baffled and after some searching I discovered that if I replace AllowedIPs = 0.0.0.0/0 with AllowedIPs = 192.168.10.0/24 I can connect with machine A again.
I searched a little more and found that wireguard marks packets with fwmark 0xca6c, so that they can be identified when going through ip rules. If I'm understanding -m mark documentation correctly.
! --mark value/mask Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).
Soo since ANDing 0x8000 with 0x8000 seems redundant I think that "this" refers to the value of the mask on the packet? In this case 0xca6c | 0x8000 would equal 0x8000, which would make the packet match DROP condition, but that would still leave me with question as to why changing AllowedIPs helps. Is wireguard traffic in that case completely local and so it's not a subject to iptables rules?
​
So, does anyone have any thoughts on that? Am I correct in my assumptions on that last paragraphs, or am I completely misunderstanding everything?
​
And also, what is KUBE-MARK-DROP for, since it appears to not be used at all? Will it be used later on as I add more services?
​
Also, here's the entire iptables configuration, if it's needed:
​
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-IPTABLES-HINT - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-PROXY-CANARY - [0:0]
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
filter
:INPUT ACCEPT 2631617:9241306330
:FORWARD ACCEPT 2700:348185
:OUTPUT ACCEPT 2609743:9125831887
:KUBE-EXTERNAL-SERVICES - 0:0
:KUBE-FIREWALL - 0:0
:KUBE-FORWARD - 0:0
:KUBE-KUBELET-CANARY - 0:0
:KUBE-NODEPORTS - 0:0
:KUBE-PROXY-CANARY - 0:0
:KUBE-PROXY-FIREWALL - 0:0
:KUBE-SERVICES - 0:0
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes
So, here’s the situation:
I have 3 virtual machines(HyperV), let’s call them A,B and C on my computer.
I also have 2 VMs set up on Azure, let's call them D and E, so I thought it would be cool idea to setup a VPN using wireguard to create a private network for all of those machines. I've created 192.168.20.0/24 private subnet using those configs:
Interface
PrivateKey = <privatekey>
Address = 192.168.10.3/24
ListenPort = 51194
SaveConfig = false
PostUp = /etc/wireguard/helper/add-nat-routing.sh
PostDown = /etc/wireguard/helper/remove-nat-routing.sh
Peer
PublicKey = <pubkey>
AllowedIPs = 192.168.10.2/32
<other peers...>
On the server(machine D).
And
Interface
PrivateKey = <private key>
Address = 192.168.10.2/24
Peer
PublicKey = <pubkey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip address>:51194
PersistentKeepalive = 15
On the client(machine A).
​
Everything worked smoothly, but then I wanted to create a kubernetes cluster(my first time ever) on machine A. I used
​
sudo kubeadm init --pod-network-cidr=192.168.10.0/24
and that's when the problems started. I was no longer able to connect/ping from machine D to A, and vice versa. I figured out that there has to be a problem with iptables, and after some looking I figured out that packets are being dropped because of
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
Mark "0x8000/0x8000" seems to be set in
​
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
except... there's no rule that would actually jump there! This left me rather baffled and after some searching I discovered that if I replace AllowedIPs = 0.0.0.0/0 with AllowedIPs = 192.168.10.0/24 I can connect with machine A again.
I searched a little more and found that wireguard marks packets with fwmark 0xca6c, so that they can be identified when going through ip rules. If I'm understanding -m mark documentation correctly.
! --mark value/mask Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).
Soo since ANDing 0x8000 with 0x8000 seems redundant I think that "this" refers to the value of the mask on the packet? In this case 0xca6c | 0x8000 would equal 0x8000, which would make the packet match DROP condition, but that would still leave me with question as to why changing AllowedIPs helps. Is wireguard traffic in that case completely local and so it's not a subject to iptables rules?
​
So, does anyone have any thoughts on that? Am I correct in my assumptions on that last paragraphs, or am I completely misunderstanding everything?
​
And also, what is KUBE-MARK-DROP for, since it appears to not be used at all? Will it be used later on as I add more services?
​
Also, here's the entire iptables configuration, if it's needed:
​
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-IPTABLES-HINT - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-PROXY-CANARY - [0:0]
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
filter
:INPUT ACCEPT 2631617:9241306330
:FORWARD ACCEPT 2700:348185
:OUTPUT ACCEPT 2609743:9125831887
:KUBE-EXTERNAL-SERVICES - 0:0
:KUBE-FIREWALL - 0:0
:KUBE-FORWARD - 0:0
:KUBE-KUBELET-CANARY - 0:0
:KUBE-NODEPORTS - 0:0
:KUBE-PROXY-CANARY - 0:0
:KUBE-PROXY-FIREWALL - 0:0
:KUBE-SERVICES - 0:0
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes
Help me understand networking of kubernetes + wireguard
So, here’s the situation:
I have 3 virtual machines(HyperV), let’s call them A,B and C on my computer.
I also have 2 VMs set up on Azure, let's call them D and E, so I thought it would be cool idea to setup a VPN using wireguard to create a private network for all of those machines. I've created [192.168.20.0/24](https://192.168.20.0/24) private subnet using those configs:
[Interface]
PrivateKey = <privatekey>
Address = 192.168.10.3/24
ListenPort = 51194
SaveConfig = false
PostUp = /etc/wireguard/helper/add-nat-routing.sh
PostDown = /etc/wireguard/helper/remove-nat-routing.sh
[Peer]
PublicKey = <pubkey>
AllowedIPs = 192.168.10.2/32
<other peers...>
On the server(machine D).
And
[Interface]
PrivateKey = <private key>
Address = 192.168.10.2/24
[Peer]
PublicKey = <pubkey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip address>:51194
PersistentKeepalive = 15
On the client(machine A).
​
Everything worked smoothly, but then I wanted to create a kubernetes cluster(my first time ever) on machine A. I used
​
sudo kubeadm init --pod-network-cidr=192.168.10.0/24
and that's when the problems started. I was no longer able to connect/ping from machine D to A, and vice versa. I figured out that there has to be a problem with iptables, and after some looking I figured out that packets are being dropped because of
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
Mark "0x8000/0x8000" seems to be set in
​
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
except... there's no rule that would actually jump there! This left me rather baffled and after some searching I discovered that if I replace AllowedIPs = [0.0.0.0/0](https://0.0.0.0/0) with AllowedIPs = [192.168.10.0/24](https://192.168.10.0/24) I can connect with machine A again.
I searched a little more and found that wireguard marks packets with fwmark 0xca6c, so that they can be identified when going through ip rules. If I'm understanding -m mark documentation correctly.
[!] --mark value[/mask] Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).
Soo since ANDing 0x8000 with 0x8000 seems redundant I think that "this" refers to the value of the mask on the packet? In this case 0xca6c | 0x8000 would equal 0x8000, which would make the packet match DROP condition, but that would still leave me with question as to why changing AllowedIPs helps. Is wireguard traffic in that case completely local and so it's not a subject to iptables rules?
​
So, does anyone have any thoughts on that? Am I correct in my assumptions on that last paragraphs, or am I completely misunderstanding everything?
​
And also, what is KUBE-MARK-DROP for, since it appears to not be used at all? Will it be used later on as I add more services?
​
Also, here's the entire iptables configuration, if it's needed:
​
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-IPTABLES-HINT - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-PROXY-CANARY - [0:0]
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*filter
:INPUT ACCEPT [2631617:9241306330]
:FORWARD ACCEPT [2700:348185]
:OUTPUT ACCEPT [2609743:9125831887]
:KUBE-EXTERNAL-SERVICES - [0:0]
:KUBE-FIREWALL - [0:0]
:KUBE-FORWARD - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-NODEPORTS - [0:0]
:KUBE-PROXY-CANARY - [0:0]
:KUBE-PROXY-FIREWALL - [0:0]
:KUBE-SERVICES - [0:0]
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes
So, here’s the situation:
I have 3 virtual machines(HyperV), let’s call them A,B and C on my computer.
I also have 2 VMs set up on Azure, let's call them D and E, so I thought it would be cool idea to setup a VPN using wireguard to create a private network for all of those machines. I've created [192.168.20.0/24](https://192.168.20.0/24) private subnet using those configs:
[Interface]
PrivateKey = <privatekey>
Address = 192.168.10.3/24
ListenPort = 51194
SaveConfig = false
PostUp = /etc/wireguard/helper/add-nat-routing.sh
PostDown = /etc/wireguard/helper/remove-nat-routing.sh
[Peer]
PublicKey = <pubkey>
AllowedIPs = 192.168.10.2/32
<other peers...>
On the server(machine D).
And
[Interface]
PrivateKey = <private key>
Address = 192.168.10.2/24
[Peer]
PublicKey = <pubkey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip address>:51194
PersistentKeepalive = 15
On the client(machine A).
​
Everything worked smoothly, but then I wanted to create a kubernetes cluster(my first time ever) on machine A. I used
​
sudo kubeadm init --pod-network-cidr=192.168.10.0/24
and that's when the problems started. I was no longer able to connect/ping from machine D to A, and vice versa. I figured out that there has to be a problem with iptables, and after some looking I figured out that packets are being dropped because of
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
Mark "0x8000/0x8000" seems to be set in
​
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
except... there's no rule that would actually jump there! This left me rather baffled and after some searching I discovered that if I replace AllowedIPs = [0.0.0.0/0](https://0.0.0.0/0) with AllowedIPs = [192.168.10.0/24](https://192.168.10.0/24) I can connect with machine A again.
I searched a little more and found that wireguard marks packets with fwmark 0xca6c, so that they can be identified when going through ip rules. If I'm understanding -m mark documentation correctly.
[!] --mark value[/mask] Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).
Soo since ANDing 0x8000 with 0x8000 seems redundant I think that "this" refers to the value of the mask on the packet? In this case 0xca6c | 0x8000 would equal 0x8000, which would make the packet match DROP condition, but that would still leave me with question as to why changing AllowedIPs helps. Is wireguard traffic in that case completely local and so it's not a subject to iptables rules?
​
So, does anyone have any thoughts on that? Am I correct in my assumptions on that last paragraphs, or am I completely misunderstanding everything?
​
And also, what is KUBE-MARK-DROP for, since it appears to not be used at all? Will it be used later on as I add more services?
​
Also, here's the entire iptables configuration, if it's needed:
​
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-IPTABLES-HINT - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-PROXY-CANARY - [0:0]
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*filter
:INPUT ACCEPT [2631617:9241306330]
:FORWARD ACCEPT [2700:348185]
:OUTPUT ACCEPT [2609743:9125831887]
:KUBE-EXTERNAL-SERVICES - [0:0]
:KUBE-FIREWALL - [0:0]
:KUBE-FORWARD - [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-NODEPORTS - [0:0]
:KUBE-PROXY-CANARY - [0:0]
:KUBE-PROXY-FIREWALL - [0:0]
:KUBE-SERVICES - [0:0]
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes
load balancer firewall" -j KUBE-P
-A INPUT -m comment --comment "kubernetes health check service ports" -j KUBE-NODEPORTS
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes externally-visible service portal
-A INPUT -j KUBE-FIREWALL
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes load balancer firewall" -j KUBE
-A FORWARD -m comment --comment "kubernetes forwarding rules" -j KUBE-FORWARD
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes service portals" -j KUBE-SERVIC
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes externally-visible service port
-A OUTPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes load balancer firewall" -j KUBE-
-A OUTPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes service portals" -j KUBE-SERVICE
-A OUTPUT -j KUBE-FIREWALL
-A KUBE-FIREWALL ! -s 127.0.0.0/8 -d 127.0.0.0/8 -m comment --comment "block incoming localnet connect
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark
-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP
-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACC
-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack rule" -m conntrack --ctstate REL
-A KUBE-SERVICES -d 10.96.0.10/32 -p udp -m comment --comment "kube-system/kube-dns:dns has no endpoin
-A KUBE-SERVICES -d 10.96.0.10/32 -p tcp -m comment --comment "kube-system/kube-dns:dns-tcp has no end
-A KUBE-SERVICES -d 10.96.0.10/32 -p tcp -m comment --comment "kube-system/kube-dns:metrics has no end
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-MARK-DROP - [0:0]
:KUBE-MARK-MASQ - [0:0]
:KUBE-NODEPORTS - [0:0]
:KUBE-POSTROUTING - [0:0]
:KUBE-PROXY-CANARY - [0:0]
:KUBE-SEP-CQRAHCCC7XPEWYB2 - [0:0]
:KUBE-SERVICES - [0:0]
:KUBE-SVC-NPX46M4PTMTKRN6Y - [0:0]
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A POSTROUTING -s 172.25.144.0/20 -j MASQUERADE #for forwarding traffic from B and C through A
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
-A KUBE-MARK-MASQ -j MARK --set-xmark 0x4000/0x4000
-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN
-A KUBE-POSTROUTING -j MARK --set-xmark 0x4000/0x0
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE --r
-A KUBE-SEP-CQRAHCCC7XPEWYB2 -s 192.168.0.2/32 -m comment --comment "default/kubernetes:https" -j KUBE
-A KUBE-SEP-CQRAHCCC7XPEWYB2 -p tcp -m comment --comment "default/kubernetes:https" -m tcp -j DNAT --to-destination 192.168.0.2:6443
-A KUBE-SERVICES -d 10.96.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-SVC-NPX46M4PTMTKRN6Y
-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS
-A KUBE-SVC-NPX46M4PTMTKRN6Y ! -s 192.168.10.0/24 -d 10.96.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-MARK-MASQ
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https -> 192.168.0.2:6443" -j KUBE-SEP-CQRAHCCC7XPEWYB2
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
https://redd.it/11nsfj5
@r_devops
-A INPUT -m comment --comment "kubernetes health check service ports" -j KUBE-NODEPORTS
-A INPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes externally-visible service portal
-A INPUT -j KUBE-FIREWALL
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes load balancer firewall" -j KUBE
-A FORWARD -m comment --comment "kubernetes forwarding rules" -j KUBE-FORWARD
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes service portals" -j KUBE-SERVIC
-A FORWARD -m conntrack --ctstate NEW -m comment --comment "kubernetes externally-visible service port
-A OUTPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes load balancer firewall" -j KUBE-
-A OUTPUT -m conntrack --ctstate NEW -m comment --comment "kubernetes service portals" -j KUBE-SERVICE
-A OUTPUT -j KUBE-FIREWALL
-A KUBE-FIREWALL ! -s 127.0.0.0/8 -d 127.0.0.0/8 -m comment --comment "block incoming localnet connect
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark
-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP
-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACC
-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack rule" -m conntrack --ctstate REL
-A KUBE-SERVICES -d 10.96.0.10/32 -p udp -m comment --comment "kube-system/kube-dns:dns has no endpoin
-A KUBE-SERVICES -d 10.96.0.10/32 -p tcp -m comment --comment "kube-system/kube-dns:dns-tcp has no end
-A KUBE-SERVICES -d 10.96.0.10/32 -p tcp -m comment --comment "kube-system/kube-dns:metrics has no end
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
# Generated by iptables-save v1.8.7 on Thu Mar 9 11:45:10 2023
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:KUBE-KUBELET-CANARY - [0:0]
:KUBE-MARK-DROP - [0:0]
:KUBE-MARK-MASQ - [0:0]
:KUBE-NODEPORTS - [0:0]
:KUBE-POSTROUTING - [0:0]
:KUBE-PROXY-CANARY - [0:0]
:KUBE-SEP-CQRAHCCC7XPEWYB2 - [0:0]
:KUBE-SERVICES - [0:0]
:KUBE-SVC-NPX46M4PTMTKRN6Y - [0:0]
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A POSTROUTING -s 172.25.144.0/20 -j MASQUERADE #for forwarding traffic from B and C through A
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
-A KUBE-MARK-MASQ -j MARK --set-xmark 0x4000/0x4000
-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN
-A KUBE-POSTROUTING -j MARK --set-xmark 0x4000/0x0
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE --r
-A KUBE-SEP-CQRAHCCC7XPEWYB2 -s 192.168.0.2/32 -m comment --comment "default/kubernetes:https" -j KUBE
-A KUBE-SEP-CQRAHCCC7XPEWYB2 -p tcp -m comment --comment "default/kubernetes:https" -m tcp -j DNAT --to-destination 192.168.0.2:6443
-A KUBE-SERVICES -d 10.96.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-SVC-NPX46M4PTMTKRN6Y
-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS
-A KUBE-SVC-NPX46M4PTMTKRN6Y ! -s 192.168.10.0/24 -d 10.96.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-MARK-MASQ
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https -> 192.168.0.2:6443" -j KUBE-SEP-CQRAHCCC7XPEWYB2
COMMIT
# Completed on Thu Mar 9 11:45:10 2023
https://redd.it/11nsfj5
@r_devops
Reddit
r/devops on Reddit: Help me understand networking of kubernetes + wireguard
Posted by u/Present_You_5294 - 1 vote and no comments
Hiring developers
Just wondering what the cost is to hire developers to create an MVP? Any insight on market rates, payment structure, and any other information would be greatly appreciated.
https://redd.it/11nw41a
@r_devops
Just wondering what the cost is to hire developers to create an MVP? Any insight on market rates, payment structure, and any other information would be greatly appreciated.
https://redd.it/11nw41a
@r_devops
Reddit
r/devops on Reddit: Hiring developers
Posted by u/draculicious - No votes and 1 comment
Is there software to push my Dev server to my main server?
I have a Development game server and a main game server. I would like to find something like gitlab to track issues and push my development server changes to the main server. I need to be able to upload zip files and decompress them all while keeping track of what happens. Is there any software out there like gitlab thats is free and could accomplish this?
Thanks in advance
https://redd.it/11nrfer
@r_devops
I have a Development game server and a main game server. I would like to find something like gitlab to track issues and push my development server changes to the main server. I need to be able to upload zip files and decompress them all while keeping track of what happens. Is there any software out there like gitlab thats is free and could accomplish this?
Thanks in advance
https://redd.it/11nrfer
@r_devops
Reddit
r/devops on Reddit: Is there software to push my Dev server to my main server?
Posted by u/FuzzySatisfaction373 - No votes and 6 comments
Ultimate Guide to Pass DevOps Institute DOFD Exam
Secrets to Passing the DevOps Institute DOFD Certification on Your First Try
https://guides.co/g/dofd-exam-guide/259364
​
\#DevOpsFoundation #DOFD #DevOpsInstituteDevOpsFoundation #DevOpsInstitute #DevOpsInstituteDOFD #DevOpsInstituteCertifiedDevOpsFoundation #CertifiedDevOpsFoundation #DevOpsFoundationCertification #DevOpsFoundationExam #DevOpsInstituteDevOpsFoundationCertification #DevOpsInstituteDevOpsFoundationExam #DevOpsInstituteExam #DevOpsInstituteCertification #DevOpsInstituteDOFDExam #DevOpsInstituteDOFDCertification #DevOpsInstituteCertifiedDevOpsFoundationCertification #DevOpsInstituteCertifiedDevOpsFoundationExam #CertifiedDevOpsFoundationCertification #CertifiedDevOpsFoundationExam #DOFDCertification #DOFDExam #DOFDMockTest #DOFDPracticeExam #DOFDQuestions #DOFDSyllabus #DevOps
https://redd.it/11obrbf
@r_devops
Secrets to Passing the DevOps Institute DOFD Certification on Your First Try
https://guides.co/g/dofd-exam-guide/259364
​
\#DevOpsFoundation #DOFD #DevOpsInstituteDevOpsFoundation #DevOpsInstitute #DevOpsInstituteDOFD #DevOpsInstituteCertifiedDevOpsFoundation #CertifiedDevOpsFoundation #DevOpsFoundationCertification #DevOpsFoundationExam #DevOpsInstituteDevOpsFoundationCertification #DevOpsInstituteDevOpsFoundationExam #DevOpsInstituteExam #DevOpsInstituteCertification #DevOpsInstituteDOFDExam #DevOpsInstituteDOFDCertification #DevOpsInstituteCertifiedDevOpsFoundationCertification #DevOpsInstituteCertifiedDevOpsFoundationExam #CertifiedDevOpsFoundationCertification #CertifiedDevOpsFoundationExam #DOFDCertification #DOFDExam #DOFDMockTest #DOFDPracticeExam #DOFDQuestions #DOFDSyllabus #DevOps
https://redd.it/11obrbf
@r_devops
Guides.co
Ultimate Guide to Pass DevOps Institute DOFD Exam:
Click Here---> https://bit.ly/3Vt8grU <---Get complete detail on DOFD exam guide to crack DevOps Foundation. You can col
The Impact of Developer Happiness on Productivity
Even in an era of unprecedented tech layoffs, most companies are still eager to find and retain top software developer talent. What’s more, many firms are discovering that they lack direct insight into their development teams’ needs and priorities. As a result, some of them are struggling to keep their developers happy and thus productive. A recent Zenhub report found, for the first time, a quantitative link between developer happiness and productivity, including what keeps developers in the same position instead of moving on to another job at the first sign of perceived trouble.
Software Development Happiness
The 2022 Software Developer Happiness report is based on a survey of 380 software professionals from a host of different organization types. In brief, the survey found that two of the biggest contributors to devs being unhappy in their roles were a lack of work/life balance and not working on what’s perceived as “quality work.”
Even with a looming recession and thousands of layoffs, there remains a dearth of senior software development talent. For more junior talent, there will be more available than in previous, pre-pandemic years. As companies strive to do more with less, they still require development teams to build their products and/or the applications that drive their business. Setting up more junior teams for success via collaboration and productivity tools will be key to navigating this new environment.
Given these findings, if organizations want to retain developer talent, they still need to make sure developers are working on meaningful projects and that they’re able to achieve that work in a way that balances the needs of the business with the needs of the individual.
An ideal example of this phenomenon is the developer tool ecosystem companies make available to their teams. While the growth of this ecosystem has been a net positive for developers, it has also created a lot of tool sprawl and significant integration challenges.
Less Time on Application Development
Stephen O’Grady, an analyst at RedMonk, an analyst firm focused explicitly on software developers, talked a lot about this through a term he coined called the “developer experience gap.” He is referring to developers spending more time integrating tools than working on application development or application code. That integration work comes at a real cost. It means developers are spending less time on application development, are having to work longer hours or do the integration work off the side of the desk.
The real bottom line to these survey results is that developers are happiest and stay at their jobs longer when empowered to focus on building code. This means spending less time interacting with management, attending meetings or resolving and integrating multiple solutions. The report’s results also emphasized the importance of work-life balance in encouraging developers to stay at their current job longer, while poor work-life balance accelerated the hunt for another job. These insights into developer retention are especially critical as, according to the report, 71% of developers haven’t decided how long they’ll stay with their current employer. The report also suggested that 33% of developers have stayed in a job longer than usual due to the pandemic, which could mean an increase in developer turnover when the pandemic comes to an end.
Another key finding is that collaboration challenges are viewed as the biggest impediment to developer productivity. Delays in feedback result in lost productivity; nearly 70% lose a minimum of three hours per week per developer and 75% spend at least an hour per week on reporting instead of writing code.
Finally, developers said their biggest priority is ensuring their software meets business demands, and most developers want high-performance productivity tools. In fact, 93% of developers believed these tools are critical to their success.
Increase Developer
Even in an era of unprecedented tech layoffs, most companies are still eager to find and retain top software developer talent. What’s more, many firms are discovering that they lack direct insight into their development teams’ needs and priorities. As a result, some of them are struggling to keep their developers happy and thus productive. A recent Zenhub report found, for the first time, a quantitative link between developer happiness and productivity, including what keeps developers in the same position instead of moving on to another job at the first sign of perceived trouble.
Software Development Happiness
The 2022 Software Developer Happiness report is based on a survey of 380 software professionals from a host of different organization types. In brief, the survey found that two of the biggest contributors to devs being unhappy in their roles were a lack of work/life balance and not working on what’s perceived as “quality work.”
Even with a looming recession and thousands of layoffs, there remains a dearth of senior software development talent. For more junior talent, there will be more available than in previous, pre-pandemic years. As companies strive to do more with less, they still require development teams to build their products and/or the applications that drive their business. Setting up more junior teams for success via collaboration and productivity tools will be key to navigating this new environment.
Given these findings, if organizations want to retain developer talent, they still need to make sure developers are working on meaningful projects and that they’re able to achieve that work in a way that balances the needs of the business with the needs of the individual.
An ideal example of this phenomenon is the developer tool ecosystem companies make available to their teams. While the growth of this ecosystem has been a net positive for developers, it has also created a lot of tool sprawl and significant integration challenges.
Less Time on Application Development
Stephen O’Grady, an analyst at RedMonk, an analyst firm focused explicitly on software developers, talked a lot about this through a term he coined called the “developer experience gap.” He is referring to developers spending more time integrating tools than working on application development or application code. That integration work comes at a real cost. It means developers are spending less time on application development, are having to work longer hours or do the integration work off the side of the desk.
The real bottom line to these survey results is that developers are happiest and stay at their jobs longer when empowered to focus on building code. This means spending less time interacting with management, attending meetings or resolving and integrating multiple solutions. The report’s results also emphasized the importance of work-life balance in encouraging developers to stay at their current job longer, while poor work-life balance accelerated the hunt for another job. These insights into developer retention are especially critical as, according to the report, 71% of developers haven’t decided how long they’ll stay with their current employer. The report also suggested that 33% of developers have stayed in a job longer than usual due to the pandemic, which could mean an increase in developer turnover when the pandemic comes to an end.
Another key finding is that collaboration challenges are viewed as the biggest impediment to developer productivity. Delays in feedback result in lost productivity; nearly 70% lose a minimum of three hours per week per developer and 75% spend at least an hour per week on reporting instead of writing code.
Finally, developers said their biggest priority is ensuring their software meets business demands, and most developers want high-performance productivity tools. In fact, 93% of developers believed these tools are critical to their success.
Increase Developer
Zenhub
2022 Software Developer Happiness Report - Developer Productivity Data
Software developer productivity data that will help you foster a positive developer culture and retain talent. Learn more!
Happiness
So what can team leads to alleviate these issues? For both team leads and more senior management, the biggest way to increase developer happiness is simply to let them focus on coding. Developers like to showcase their skills, so encouraging them to work on interesting and impactful projects that challenge their skill sets is a great way to boost morale. Ensuring an appropriate work-life balance and paying the developers competitively are the other two recommendations for improving developer retention.
Additionally, senior management should take another look at how they are compensating their teams. Financial compensation will always be a critical element, but we should expect to see companies shift their focus to programs and benefits that their employees truly need. Particularly given the somewhat chaotic year in 2022 and continuing in 2023, those in the technology industry will shift to valuing organizational stability over just a paycheck. An improved focus on mental health, conflict resolution and work/life balance will also be a big part of attracting the appropriate talent to an organization.
Source
https://redd.it/11nlocg
@r_devops
So what can team leads to alleviate these issues? For both team leads and more senior management, the biggest way to increase developer happiness is simply to let them focus on coding. Developers like to showcase their skills, so encouraging them to work on interesting and impactful projects that challenge their skill sets is a great way to boost morale. Ensuring an appropriate work-life balance and paying the developers competitively are the other two recommendations for improving developer retention.
Additionally, senior management should take another look at how they are compensating their teams. Financial compensation will always be a critical element, but we should expect to see companies shift their focus to programs and benefits that their employees truly need. Particularly given the somewhat chaotic year in 2022 and continuing in 2023, those in the technology industry will shift to valuing organizational stability over just a paycheck. An improved focus on mental health, conflict resolution and work/life balance will also be a big part of attracting the appropriate talent to an organization.
Source
https://redd.it/11nlocg
@r_devops
DevOps.com
The Impact of Developer Happiness on Productivity
A recent Zenhub report found, for the first time, a quantitative link between developer happiness and productivity.
OpsLevel and Backstage ? What those are used for anyone has experience with those ?
Title
https://redd.it/11njlgy
@r_devops
Title
https://redd.it/11njlgy
@r_devops
Reddit
r/devops on Reddit: OpsLevel and Backstage ? What those are used for anyone has experience with those ?
Posted by u/pojzon_poe - No votes and 3 comments
Running Jenkins as Docker, but cannot execute docker commands from inside
Hi,
I've deployed Jenkins as Docker container in my local. But, when I try to execute job with docker command, it simply doesn't work.
+ docker ps
Failed to initialize: unable to resolve docker endpoint: open /certs/client/ca.pem: no such file or directory
What I am trying to do?
I have installed Docker in my host machine and want it to be accessible inside a docker container that is running Jenkins. I really don't get the .sock thing.
​
Installation Followed: https://www.jenkins.io/doc/book/installing/docker/Built Jenkins docker image using Dockerfile (as it comes with blue ocean).
Thanks.
https://redd.it/11oeej1
@r_devops
Hi,
I've deployed Jenkins as Docker container in my local. But, when I try to execute job with docker command, it simply doesn't work.
+ docker ps
Failed to initialize: unable to resolve docker endpoint: open /certs/client/ca.pem: no such file or directory
What I am trying to do?
I have installed Docker in my host machine and want it to be accessible inside a docker container that is running Jenkins. I really don't get the .sock thing.
​
Installation Followed: https://www.jenkins.io/doc/book/installing/docker/Built Jenkins docker image using Dockerfile (as it comes with blue ocean).
Thanks.
https://redd.it/11oeej1
@r_devops
Docker
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software