Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v2.8] System upgrade controller support for k8s 1.27 #2915

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
18 changes: 18 additions & 0 deletions charts/system-upgrade-controller/103.1.0+up0.6.0/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/kube-version: '>= 1.23.0-0 < 1.28.0-0'
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/rancher-version: '>= 2.8.0-0 < 2.9.0-0'
catalog.cattle.io/release-name: system-upgrade-controller
apiVersion: v1
appVersion: v0.13.1
description: General purpose controller to make system level updates to nodes.
home: https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
kubeVersion: '>= 1.23.0-0'
name: system-upgrade-controller
sources:
- https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
version: 103.1.0+up0.6.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{{/* vim: set filetype=mustache: */}}

{{- define "system_default_registry" -}}
{{- if .Values.global.cattle.systemDefaultRegistry -}}
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
{{- else -}}
{{- "" -}}
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system-upgrade-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: system-upgrade-controller
namespace: cattle-system
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: system-upgrade-controller-config
namespace: cattle-system
data:
SYSTEM_UPGRADE_CONTROLLER_DEBUG: {{ .Values.systemUpgradeControllerDebug | default "false" | quote }}
SYSTEM_UPGRADE_CONTROLLER_THREADS: {{ .Values.systemUpgradeControllerThreads | default "2" | quote }}
SYSTEM_UPGRADE_JOB_ACTIVE_DEADLINE_SECONDS: {{ .Values.systemUpgradeJobActiveDeadlineSeconds | default "900" | quote }}
SYSTEM_UPGRADE_JOB_BACKOFF_LIMIT: {{ .Values.systemUpgradeJobBackoffLimit | default "99" | quote }}
SYSTEM_UPGRADE_JOB_IMAGE_PULL_POLICY: {{ .Values.systemUpgradeJobImagePullPolicy | default "IfNotPresent" | quote }}
SYSTEM_UPGRADE_JOB_KUBECTL_IMAGE: {{ template "system_default_registry" . }}{{ .Values.kubectl.image.repository }}:{{ .Values.kubectl.image.tag }}
SYSTEM_UPGRADE_JOB_PRIVILEGED: {{ .Values.systemUpgradeJobPrivileged | default "true" | quote }}
SYSTEM_UPGRADE_JOB_TTL_SECONDS_AFTER_FINISH: {{ .Values.systemUpgradeJobTTLSecondsAfterFinish | default "900" | quote }}
SYSTEM_UPGRADE_PLAN_POLLING_INTERVAL: {{ .Values.systemUpgradePlanRollingInterval | default "15m" | quote }}

Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: system-upgrade-controller
namespace: cattle-system
spec:
selector:
matchLabels:
upgrade.cattle.io/controller: system-upgrade-controller
template:
metadata:
labels:
upgrade.cattle.io/controller: system-upgrade-controller # necessary to avoid drain
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "kubernetes.io/os"
operator: NotIn
values:
- windows
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: In
values:
- "true"
weight: 100
- preference:
matchExpressions:
- key: node-role.kubernetes.io/master
operator: In
values:
- "true"
weight: 100
tolerations:
- operator: Exists
serviceAccountName: system-upgrade-controller
containers:
- name: system-upgrade-controller
image: {{ template "system_default_registry" . }}{{ .Values.systemUpgradeController.image.repository }}:{{ .Values.systemUpgradeController.image.tag }}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: system-upgrade-controller-config
env:
- name: SYSTEM_UPGRADE_CONTROLLER_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['upgrade.cattle.io/controller']
- name: SYSTEM_UPGRADE_CONTROLLER_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: etc-ssl
mountPath: /etc/ssl
- name: tmp
mountPath: /tmp
volumes:
- name: etc-ssl
hostPath:
path: /etc/ssl
type: Directory
- name: tmp
emptyDir: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{{- if .Values.global.cattle.psp.enabled }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: system-upgrade-controller
spec:
allowPrivilegeEscalation: true
allowedCapabilities:
- CAP_SYS_BOOT
hostNetwork: true
hostPID: true
hostIPC: true
privileged: true
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
fsGroup:
rule: RunAsAny
volumes:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system-upgrade-controller-psp
rules:
- apiGroups:
- policy
resourceNames:
- system-upgrade-controller
resources:
- podsecuritypolicies
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system-upgrade-controller-psp
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system-upgrade-controller-psp
subjects:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: system:serviceaccounts:cattle-system
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: system-upgrade-controller
namespace: cattle-system
15 changes: 15 additions & 0 deletions charts/system-upgrade-controller/103.1.0+up0.6.0/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
global:
cattle:
systemDefaultRegistry: ""
psp:
enabled: true

systemUpgradeController:
image:
repository: rancher/system-upgrade-controller
tag: v0.13.1

kubectl:
image:
repository: rancher/kubectl
tag: v1.23.3
22 changes: 22 additions & 0 deletions index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15865,6 +15865,28 @@ entries:
- assets/sriov-crd/sriov-crd-100.0.0+up0.1.0.tgz
version: 100.0.0+up0.1.0
system-upgrade-controller:
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/kube-version: '>= 1.23.0-0 < 1.28.0-0'
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/rancher-version: '>= 2.8.0-0 < 2.9.0-0'
catalog.cattle.io/release-name: system-upgrade-controller
apiVersion: v1
appVersion: v0.13.1
created: "2023-08-29T17:10:36.20358615-05:00"
description: General purpose controller to make system level updates to nodes.
digest: ce11632eefe3c5f6b63fbfeda038d1ceb704ffb8985b86e5b35f1ea44ec202a8
home: https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
kubeVersion: '>= 1.23.0-0'
name: system-upgrade-controller
sources:
- https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
urls:
- assets/system-upgrade-controller/system-upgrade-controller-103.1.0+up0.6.0.tgz
version: 103.1.0+up0.6.0
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@
+annotations:
+ catalog.cattle.io/certified: rancher
+ catalog.cattle.io/hidden: "true"
+ catalog.cattle.io/kube-version: '>= 1.23.0-0 < 1.27.0-0'
+ catalog.cattle.io/kube-version: '>= 1.23.0-0 < 1.28.0-0'
+ catalog.cattle.io/namespace: cattle-system
+ catalog.cattle.io/os: linux
+ catalog.cattle.io/permits-os: linux,windows
+ catalog.cattle.io/rancher-version: '>= 2.8.0-0 < 2.9.0-0'
+ catalog.cattle.io/release-name: system-upgrade-controller
apiVersion: v1
appVersion: v0.11.0
appVersion: v0.13.1
-description: Enables a k3s or rke2 cluster to update itself by reacting to Plan CRs.
- Users do not need to manually upgrade this app. It will be automatically upgraded
- to the latest version when upgrading a cluster.
+description: General purpose controller to make system level updates to nodes.
home: https://github.com/rancher/system-charts/blob/dev-v2.7/charts/rancher-k3s-upgrader
home: https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
kubeVersion: '>= 1.23.0-0'
-name: rancher-k3s-upgrader
+name: system-upgrade-controller
sources:
- https://github.com/rancher/system-charts/blob/dev-v2.7/charts/rancher-k3s-upgrader
version: 0.5.0
- https://github.com/rancher/system-charts/blob/dev-v2.8/charts/rancher-k3s-upgrader
version: 0.6.0
8 changes: 4 additions & 4 deletions packages/system-upgrade-controller/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
url: https://github.com/rancher/system-charts.git
subdirectory: charts/rancher-k3s-upgrader/0.5.0
commit: a0121d8275948b1f7cfc4d63703b91a89dcb08ba
version: 103.0.0
doNotRelease: true
subdirectory: charts/rancher-k3s-upgrader/0.6.0
commit: 3cd6441aa95b5353166bdaedb08dea91e90c66ee
version: 103.1.0
doNotRelease: false
2 changes: 2 additions & 0 deletions release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,5 @@ rancher-external-ip-webhook:
- 100.0.0+up1.0.0
- 100.0.1+up1.0.1
- 100.0.2+up1.0.1
system-upgrade-controller:
- 103.1.0+up0.6.0
Loading