Merge branch 'role_kubernetes-k3s'
This commit is contained in:
		
						commit
						f2c86dc22d
					
				@ -2,16 +2,40 @@
 | 
				
			|||||||
kubernetes:
 | 
					kubernetes:
 | 
				
			||||||
  ipPool:
 | 
					  ipPool:
 | 
				
			||||||
    ipv4:
 | 
					    ipv4:
 | 
				
			||||||
 | 
					      # Minimum: /24
 | 
				
			||||||
      cluster_cidr: 10.42.0.0/16
 | 
					      cluster_cidr: 10.42.0.0/16
 | 
				
			||||||
      service_cidr: 10.43.0.0/16
 | 
					      service_cidr: 10.43.0.0/16
 | 
				
			||||||
    ipv6:
 | 
					    ipv6:
 | 
				
			||||||
 | 
					      # Minimum: /120
 | 
				
			||||||
      cluster_cidr: fd42::/56
 | 
					      cluster_cidr: fd42::/56
 | 
				
			||||||
      service_cidr: fd43::/112
 | 
					      service_cidr: fd43::/112
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Replace - with _
 | 
					    # Interface to grab node-IPv4/v6 from
 | 
				
			||||||
    nodeIp_interface: <interface to grab nodeIp from>
 | 
					    nodeIp_interface: <interface to grab nodeIp from>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  control_plane:
 | 
					  control_plane:
 | 
				
			||||||
    dns_name: <control-plane dns-reachable-name>
 | 
					    dns_name: <control-plane dns-reachable-name>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  token: <shared token for nodes to join>
 | 
					  token: <shared token for nodes to join>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  network:
 | 
				
			||||||
 | 
					    # One of [flannel, calico]
 | 
				
			||||||
 | 
					    plugin: calico
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Helper for networking
 | 
				
			||||||
 | 
					    helper:
 | 
				
			||||||
 | 
					      # https://github.com/Ruakij/RoutingTableToWg
 | 
				
			||||||
 | 
					      #  Translates received-routes from e.g. BGP to wireguard-allowedips
 | 
				
			||||||
 | 
					      #  Helpful, when nodeIp_interface is a wireguard-interface
 | 
				
			||||||
 | 
					      routingtabletowg: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # One of [traefik-ingress]
 | 
				
			||||||
 | 
					  ingress_controller: traefik-ingress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config_extra:
 | 
				
			||||||
 | 
					    # etcd-tuning
 | 
				
			||||||
 | 
					    #  heartbeat: 0.5-1.5x of rtt
 | 
				
			||||||
 | 
					    #  election:  10x- of heartbeat
 | 
				
			||||||
 | 
					    etcd-arg:
 | 
				
			||||||
 | 
					      heartbeat-interval: 500
 | 
				
			||||||
 | 
					      election-timeout: 5000
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,3 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    - role: docker
 | 
					    - role: docker
 | 
				
			||||||
    - role: netmaker
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@
 | 
				
			|||||||
  ansible.builtin.template:
 | 
					  ansible.builtin.template:
 | 
				
			||||||
    src: k3s/{{ type }}/config.yaml.jinja2
 | 
					    src: k3s/{{ type }}/config.yaml.jinja2
 | 
				
			||||||
    dest: /etc/rancher/k3s/config.yaml
 | 
					    dest: /etc/rancher/k3s/config.yaml
 | 
				
			||||||
 | 
					  register: config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Download install-script
 | 
					- name: Download install-script
 | 
				
			||||||
  get_url:
 | 
					  get_url:
 | 
				
			||||||
 | 
				
			|||||||
@ -5,3 +5,9 @@
 | 
				
			|||||||
  until: "command is not failed"
 | 
					  until: "command is not failed"
 | 
				
			||||||
  retries: 2
 | 
					  retries: 2
 | 
				
			||||||
  delay: 10
 | 
					  delay: 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Restart when config changed, but install already done
 | 
				
			||||||
 | 
					  service:
 | 
				
			||||||
 | 
					    name: k3s
 | 
				
			||||||
 | 
					    status: restarted
 | 
				
			||||||
 | 
					  when: "inventory_hostname != groups['kubernetes'][0] and not command.changed and config.changed"
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,12 @@
 | 
				
			|||||||
  register: command
 | 
					  register: command
 | 
				
			||||||
  changed_when: "'No change detected' in command.stdout"
 | 
					  changed_when: "'No change detected' in command.stdout"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Restart when config changed, but install already done
 | 
				
			||||||
 | 
					  service:
 | 
				
			||||||
 | 
					    name: k3s
 | 
				
			||||||
 | 
					    status: restarted
 | 
				
			||||||
 | 
					  when: "inventory_hostname == groups['kubernetes'][0] and not command.changed and config.changed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Waiting for K3s-server to accept connections
 | 
					- name: Waiting for K3s-server to accept connections
 | 
				
			||||||
  ansible.builtin.wait_for:
 | 
					  ansible.builtin.wait_for:
 | 
				
			||||||
    host: "{{ inventory_hostname }}"
 | 
					    host: "{{ inventory_hostname }}"
 | 
				
			||||||
@ -20,6 +26,12 @@
 | 
				
			|||||||
  retries: 2
 | 
					  retries: 2
 | 
				
			||||||
  delay: 10
 | 
					  delay: 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Restart when config changed, but install already done
 | 
				
			||||||
 | 
					  service:
 | 
				
			||||||
 | 
					    name: k3s
 | 
				
			||||||
 | 
					    status: restarted
 | 
				
			||||||
 | 
					  when: "inventory_hostname != groups['kubernetes'][0] and not command.changed and config.changed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Waiting for K3s-server to accept connections on other nodes
 | 
					- name: Waiting for K3s-server to accept connections on other nodes
 | 
				
			||||||
  ansible.builtin.wait_for:
 | 
					  ansible.builtin.wait_for:
 | 
				
			||||||
    host: "{{ inventory_hostname }}"
 | 
					    host: "{{ inventory_hostname }}"
 | 
				
			||||||
@ -34,3 +46,10 @@
 | 
				
			|||||||
#    block: |
 | 
					#    block: |
 | 
				
			||||||
#      export KUBECONFIG="/etc/rancher/k3s/k3s.yaml"
 | 
					#      export KUBECONFIG="/etc/rancher/k3s/k3s.yaml"
 | 
				
			||||||
#    create: true
 | 
					#    create: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy calico
 | 
				
			||||||
 | 
					  import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_calico.yml
 | 
				
			||||||
 | 
					  when: "kubernetes.network.plugin == 'calico'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy network-helpers
 | 
				
			||||||
 | 
					  import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_network_helper.yml
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					- name: Deploy calico operator
 | 
				
			||||||
 | 
					  command: kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml
 | 
				
			||||||
 | 
					  register: command
 | 
				
			||||||
 | 
					  changed_when: "'created' in command.stdout"
 | 
				
			||||||
 | 
					  run_once: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy calico ressource template
 | 
				
			||||||
 | 
					  ansible.builtin.template:
 | 
				
			||||||
 | 
					    src: ./k3s/server/network-plugin/calico/custom-ressource.yml.jinja2
 | 
				
			||||||
 | 
					    dest: /root/calico-ressource.yml
 | 
				
			||||||
 | 
					  run_once: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy calico ressource
 | 
				
			||||||
 | 
					  command: kubectl apply -f /root/calico-ressource.yml
 | 
				
			||||||
 | 
					  register: command
 | 
				
			||||||
 | 
					  changed_when: "'created' in command.stdout"
 | 
				
			||||||
 | 
					  run_once: true
 | 
				
			||||||
@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					- name: Deploy service-file for routing-table to wireguard-translation
 | 
				
			||||||
 | 
					  ansible.builtin.template:
 | 
				
			||||||
 | 
					    src: ./k3s/server/network-plugin/calico/routingtabletowg.yml.jinja2
 | 
				
			||||||
 | 
					    dest: /var/lib/rancher/k3s/server/manifests/routingtabletowg.yml
 | 
				
			||||||
 | 
					    mode: u=rw,g=r,o=r
 | 
				
			||||||
 | 
					  run_once: true
 | 
				
			||||||
 | 
					  when: "kubernetes.network.helper.routingtabletowg"
 | 
				
			||||||
@ -17,19 +17,26 @@
 | 
				
			|||||||
#- name: Disable swap
 | 
					#- name: Disable swap
 | 
				
			||||||
#  command: swapoff -a
 | 
					#  command: swapoff -a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#- name: Install iptables
 | 
					- name: Install required packages
 | 
				
			||||||
#  package:
 | 
					  package:
 | 
				
			||||||
#      name:
 | 
					      name:
 | 
				
			||||||
#          #- containerd
 | 
					          #- containerd
 | 
				
			||||||
          #- iptables
 | 
					          #- iptables
 | 
				
			||||||
#      state: latest
 | 
					          # For Longhorn:
 | 
				
			||||||
 | 
					          - nfs-common
 | 
				
			||||||
 | 
					          - open-iscsi
 | 
				
			||||||
 | 
					      state: latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-  import_tasks: ./prerequisites/containerd.yml
 | 
					-  import_tasks: ./prerequisites/containerd.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Gather interface-name
 | 
				
			||||||
 | 
					  set_fact:
 | 
				
			||||||
 | 
					    interface: "{{ kubernetes.ipPool.nodeIp_interface | replace('-', '_') }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Getting nodeIp-data from interface
 | 
					- name: Getting nodeIp-data from interface
 | 
				
			||||||
  set_fact:
 | 
					  set_fact:
 | 
				
			||||||
    nodeip_ipv4: "{{ ansible_facts[ kubernetes.ipPool.nodeIp_interface ].ipv4.address }}"
 | 
					    nodeip_ipv4: "{{ ansible_facts[ interface ].ipv4.address }}"
 | 
				
			||||||
    nodeip_ipv6: "{{ ansible_facts[ kubernetes.ipPool.nodeIp_interface ].ipv6[0].address }}"
 | 
					    nodeip_ipv6: "{{ ansible_facts[ interface ].ipv6[0].address if ansible_facts[ interface ].ipv6 is defined }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Run handlers to reload configurations
 | 
					- name: Run handlers to reload configurations
 | 
				
			||||||
  meta: flush_handlers
 | 
					  meta: flush_handlers
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,21 @@
 | 
				
			|||||||
server: https://{{ kubernetes.control_plane.dns_name }}:6443
 | 
					server: https://{{ kubernetes.control_plane.dns_name }}:6443
 | 
				
			||||||
token: {{ kubernetes.token }}
 | 
					token: '{{ kubernetes.token }}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if nodeip_ipv6 != "" and kubernetes.ipPool.ipv6 is defined %}
 | 
				
			||||||
node-ip: {{ nodeip_ipv4 }},{{ nodeip_ipv6 }} 
 | 
					node-ip: {{ nodeip_ipv4 }},{{ nodeip_ipv6 }} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# FIXME: Workaround for bug in Kubernetes 1.24/1.25 ignoring node IPv6 addresses
 | 
					# FIXME: Workaround for bug in Kubernetes 1.24/1.25 ignoring node IPv6 addresses
 | 
				
			||||||
kubelet-arg: "--node-ip=0.0.0.0"
 | 
					kubelet-arg: "--node-ip=0.0.0.0"
 | 
				
			||||||
 | 
					{% else %}
 | 
				
			||||||
 | 
					node-ip: {{ nodeip_ipv4 }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Label
 | 
				
			||||||
 | 
					# Region & DC
 | 
				
			||||||
 | 
					node-label:
 | 
				
			||||||
 | 
					{% if region is defined %}
 | 
				
			||||||
 | 
					  - topology.kubernetes.io/region={{ region }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					{% if zone is defined %}
 | 
				
			||||||
 | 
					  - topology.kubernetes.io/zone={{ zone }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,23 +1,52 @@
 | 
				
			|||||||
## Base ##
 | 
					## Base ##
 | 
				
			||||||
{% if inventory_hostname == groups['kubernetes'][0] %}
 | 
					{% if inventory_hostname == groups['kubernetes'][0] %}
 | 
				
			||||||
 | 
					# Initialize with internal etcd
 | 
				
			||||||
cluster-init: true
 | 
					cluster-init: true
 | 
				
			||||||
{% else %}
 | 
					{% else %}
 | 
				
			||||||
server: https://{{ groups['kubernetes'][0] }}:6443
 | 
					server: https://{{ hostvars[groups['kubernetes'][0]]['nodeip_ipv4'] }}:6443
 | 
				
			||||||
{% endif %}
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
token: {{ kubernetes.token }}
 | 
					token: '{{ kubernetes.token }}'
 | 
				
			||||||
tls-san:
 | 
					tls-san:
 | 
				
			||||||
  - {{ kubernetes.control_plane.dns_name }}
 | 
					  - {{ kubernetes.control_plane.dns_name }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Networking
 | 
					# Networking
 | 
				
			||||||
 | 
					{% if nodeip_ipv6 != "" and kubernetes.ipPool.ipv6 is defined %}
 | 
				
			||||||
node-ip: {{ nodeip_ipv4 }},{{ nodeip_ipv6 }}
 | 
					node-ip: {{ nodeip_ipv4 }},{{ nodeip_ipv6 }}
 | 
				
			||||||
cluster-cidr: {{ kubernetes.ipPool.ipv4.cluster_cidr }},{{ kubernetes.ipPool.ipv6.cluster_cidr }}
 | 
					cluster-cidr: {{ kubernetes.ipPool.ipv4.cluster_cidr }},{{ kubernetes.ipPool.ipv6.cluster_cidr }}
 | 
				
			||||||
service-cidr: {{ kubernetes.ipPool.ipv4.service_cidr }},{{ kubernetes.ipPool.ipv6.service_cidr }}  
 | 
					service-cidr: {{ kubernetes.ipPool.ipv4.service_cidr }},{{ kubernetes.ipPool.ipv6.service_cidr }}  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# FIXME: Workaround for bug in Kubernetes 1.24/1.25 ignoring node IPv6 addresses
 | 
				
			||||||
 | 
					kubelet-arg: "--node-ip=0.0.0.0"
 | 
				
			||||||
 | 
					{% else %}
 | 
				
			||||||
 | 
					node-ip: {{ nodeip_ipv4 }}
 | 
				
			||||||
 | 
					cluster-cidr: {{ kubernetes.ipPool.ipv4.cluster_cidr }}
 | 
				
			||||||
 | 
					service-cidr: {{ kubernetes.ipPool.ipv4.service_cidr }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
egress-selector-mode: disabled
 | 
					egress-selector-mode: disabled
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Network-plugin
 | 
					# Network-plugin
 | 
				
			||||||
 | 
					{% if kubernetes.network_plugin == "flannel" %}
 | 
				
			||||||
flannel-backend: vxlan
 | 
					flannel-backend: vxlan
 | 
				
			||||||
 | 
					{% else %}
 | 
				
			||||||
 | 
					disable-network-policy: true
 | 
				
			||||||
 | 
					flannel-backend: none
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# FIXME: Workaround for bug in Kubernetes 1.24/1.25 ignoring node IPv6 addresses
 | 
					# Ingress-plugin
 | 
				
			||||||
kubelet-arg: "--node-ip=0.0.0.0"
 | 
					{% if kubernetes.ingress_controller != "traefik-ingress" %}
 | 
				
			||||||
 | 
					disable: traefik
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Label
 | 
				
			||||||
 | 
					# Region & DC
 | 
				
			||||||
 | 
					node-label:
 | 
				
			||||||
 | 
					{% if region is defined %}
 | 
				
			||||||
 | 
					  - topology.kubernetes.io/region={{ region }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					{% if zone is defined %}
 | 
				
			||||||
 | 
					  - topology.kubernetes.io/zone={{ zone }}
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{ kubernetes.config_extra | to_yaml }}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					# This section includes base Calico installation configuration.
 | 
				
			||||||
 | 
					# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation
 | 
				
			||||||
 | 
					apiVersion: operator.tigera.io/v1
 | 
				
			||||||
 | 
					kind: Installation
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: default
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  # Configures Calico networking.
 | 
				
			||||||
 | 
					  calicoNetwork:
 | 
				
			||||||
 | 
					    # Note: The ipPools section cannot be modified post-install.
 | 
				
			||||||
 | 
					    ipPools:
 | 
				
			||||||
 | 
					    - blockSize: 26
 | 
				
			||||||
 | 
					      cidr: {{ kubernetes.ipPool.ipv4.cluster_cidr }}
 | 
				
			||||||
 | 
					      encapsulation: None
 | 
				
			||||||
 | 
					      natOutgoing: Enabled
 | 
				
			||||||
 | 
					      nodeSelector: all()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if nodeip_ipv6 != "" and kubernetes.ipPool.ipv6 is defined %}
 | 
				
			||||||
 | 
					    - blockSize: 122
 | 
				
			||||||
 | 
					      cidr: {{ kubernetes.ipPool.ipv6.cluster_cidr }}
 | 
				
			||||||
 | 
					      encapsulation: None
 | 
				
			||||||
 | 
					      natOutgoing: Enabled
 | 
				
			||||||
 | 
					      nodeSelector: all()
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This section configures the Calico API server.
 | 
				
			||||||
 | 
					# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer
 | 
				
			||||||
 | 
					apiVersion: operator.tigera.io/v1
 | 
				
			||||||
 | 
					kind: APIServer 
 | 
				
			||||||
 | 
					metadata: 
 | 
				
			||||||
 | 
					  name: default 
 | 
				
			||||||
 | 
					spec: {}
 | 
				
			||||||
@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					# https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
 | 
				
			||||||
 | 
					apiVersion: apps/v1
 | 
				
			||||||
 | 
					kind: DaemonSet
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: routingtabletowg
 | 
				
			||||||
 | 
					  namespace: calico-system
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    app: routingtabletowg
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    matchLabels:
 | 
				
			||||||
 | 
					      app: routingtabletowg
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    metadata:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					        app: routingtabletowg
 | 
				
			||||||
 | 
					    spec:
 | 
				
			||||||
 | 
					      tolerations:
 | 
				
			||||||
 | 
					      # this toleration is to have the daemonset runnable on master nodes
 | 
				
			||||||
 | 
					      # remove it if your masters can't run pods
 | 
				
			||||||
 | 
					      - key: node-role.kubernetes.io/master
 | 
				
			||||||
 | 
					        effect: NoSchedule
 | 
				
			||||||
 | 
					      hostNetwork: true
 | 
				
			||||||
 | 
					      containers:
 | 
				
			||||||
 | 
					        - name: routingtabletowg
 | 
				
			||||||
 | 
					          image: "ruakij/routingtabletowg:0.2.0"
 | 
				
			||||||
 | 
					          env:
 | 
				
			||||||
 | 
					            - name: INTERFACE
 | 
				
			||||||
 | 
					              value: {{ kubernetes.ipPool.nodeIp_interface }}
 | 
				
			||||||
 | 
					            - name: FILTER_PROTOCOL
 | 
				
			||||||
 | 
					              value: bird
 | 
				
			||||||
 | 
					            - name: PERIODIC_SYNC
 | 
				
			||||||
 | 
					              value: '300'
 | 
				
			||||||
 | 
					          securityContext:
 | 
				
			||||||
 | 
					            capabilities:
 | 
				
			||||||
 | 
					              add:
 | 
				
			||||||
 | 
					                - NET_ADMIN
 | 
				
			||||||
 | 
					          resources:
 | 
				
			||||||
 | 
					            requests:
 | 
				
			||||||
 | 
					              cpu: 10m
 | 
				
			||||||
 | 
					              memory: 10Mi
 | 
				
			||||||
 | 
					            limits:
 | 
				
			||||||
 | 
					              cpu: 20m
 | 
				
			||||||
 | 
					              memory: 20Mi
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user