Skip to content

Commit

Permalink
Merge pull request #10798 from govargo/csi-hostpath-v1.6.0
Browse files Browse the repository at this point in the history
Upgrade csi-hostpath-driver addon to v1.6.0
  • Loading branch information
medyagh authored Mar 23, 2021
2 parents e438595 + ed8885d commit 38ed70a
Show file tree
Hide file tree
Showing 14 changed files with 282 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ metadata:
namespace: kube-system
labels:
app: csi-hostpath-attacher
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
app: csi-hostpath-attacher
Expand All @@ -42,6 +43,7 @@ spec:
metadata:
labels:
app: csi-hostpath-attacher
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/minikube-addons: csi-hostpath-driver
spec:
affinity:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ kind: CSIDriver
metadata:
name: hostpath.csi.k8s.io
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
# Supports persistent and ephemeral inline volumes.
volumeLifecycleModes:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ metadata:
namespace: kube-system
labels:
app: csi-hostpathplugin
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
app: csi-hostpathplugin
Expand All @@ -35,6 +36,8 @@ apiVersion: apps/v1
metadata:
name: csi-hostpathplugin
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: "csi-hostpathplugin"
# One replica only:
Expand All @@ -45,13 +48,45 @@ spec:
selector:
matchLabels:
app: csi-hostpathplugin
addonmanager.kubernetes.io/mode: Reconcile
template:
metadata:
labels:
app: csi-hostpathplugin
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/minikube-addons: csi-hostpath-driver
spec:
serviceAccount: csi-external-health-monitor-controller
containers:
- name: csi-external-health-monitor-agent
image: {{.CustomRegistries.HostMonitorAgent | default .ImageRepository | default .Registries.HostMonitorAgent }}{{.Images.HostMonitorAgent}}
args:
- "--v=5"
- "--csi-address=$(ADDRESS)"
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: ADDRESS
value: /csi/csi.sock
imagePullPolicy: "IfNotPresent"
volumeMounts:
- name: socket-dir
mountPath: /csi
- name: csi-external-health-monitor-controller
image: {{.CustomRegistries.HostMonitorController | default .ImageRepository | default .Registries.HostMonitorController }}{{.Images.HostMonitorController}}
args:
- "--v=5"
- "--csi-address=$(ADDRESS)"
- "--leader-election"
env:
- name: ADDRESS
value: /csi/csi.sock
imagePullPolicy: "IfNotPresent"
volumeMounts:
- name: socket-dir
mountPath: /csi
- name: node-driver-registrar
image: {{.CustomRegistries.NodeDriverRegistrar | default .ImageRepository | default .Registries.NodeDriverRegistrar }}{{.Images.NodeDriverRegistrar}}
args:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ metadata:
namespace: kube-system
labels:
app: csi-hostpath-provisioner
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
app: csi-hostpath-provisioner
Expand All @@ -32,6 +33,8 @@ apiVersion: apps/v1
metadata:
name: csi-hostpath-provisioner
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: "csi-hostpath-provisioner"
replicas: 1
Expand All @@ -42,6 +45,7 @@ spec:
metadata:
labels:
app: csi-hostpath-provisioner
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/minikube-addons: csi-hostpath-driver
spec:
affinity:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ metadata:
namespace: kube-system
labels:
app: csi-hostpath-resizer
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
app: csi-hostpath-resizer
Expand All @@ -32,6 +33,8 @@ apiVersion: apps/v1
metadata:
name: csi-hostpath-resizer
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: "csi-hostpath-resizer"
replicas: 1
Expand All @@ -42,6 +45,7 @@ spec:
metadata:
labels:
app: csi-hostpath-resizer
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/minikube-addons: csi-hostpath-driver
spec:
affinity:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ metadata:
namespace: kube-system
labels:
app: csi-hostpath-snapshotter
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
app: csi-hostpath-snapshotter
Expand All @@ -32,16 +33,20 @@ apiVersion: apps/v1
metadata:
name: csi-hostpath-snapshotter
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
serviceName: "csi-hostpath-snapshotter"
replicas: 1
selector:
matchLabels:
app: csi-hostpath-snapshotter
addonmanager.kubernetes.io/mode: Reconcile
template:
metadata:
labels:
app: csi-hostpath-snapshotter
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/minikube-addons: csi-hostpath-driver
spec:
affinity:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-hostpath-sc
labels:
addonmanager.kubernetes.io/mode: Reconcile
provisioner: hostpath.csi.k8s.io #csi-hostpath
reclaimPolicy: Delete
volumeBindingMode: Immediate
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright 2018 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This YAML file contains all RBAC objects that are necessary to run external
# CSI health monitor agent.
#
# In production, each CSI driver deployment has to be customized:
# - to avoid conflicts, use non-default namespace and different names
# for non-namespaced entities like the ClusterRole
# - decide whether the deployment replicates the external CSI
# health monitor agent, in which case leadership election must be enabled;
# this influences the RBAC setup, see below

apiVersion: v1
kind: ServiceAccount
metadata:
name: csi-external-health-monitor-agent
namespace: kube-system

---
# Health monitor agent must be able to work with PVs, PVCs, Nodes and Pods
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: external-health-monitor-agent-runner
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch", "create", "patch"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: csi-external-health-monitor-agent-role
subjects:
- kind: ServiceAccount
name: csi-external-health-monitor-agent
namespace: kube-system
roleRef:
kind: ClusterRole
name: external-health-monitor-agent-runner
apiGroup: rbac.authorization.k8s.io
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Copyright 2018 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This YAML file contains all RBAC objects that are necessary to run external
# CSI health monitor controller.
#
# In production, each CSI driver deployment has to be customized:
# - to avoid conflicts, use non-default namespace and different names
# for non-namespaced entities like the ClusterRole
# - decide whether the deployment replicates the external CSI
# health monitor controller, in which case leadership election must be enabled;
# this influences the RBAC setup, see below

apiVersion: v1
kind: ServiceAccount
metadata:
name: csi-external-health-monitor-controller
namespace: kube-system

---
# Health monitor controller must be able to work with PVs, PVCs, Nodes and Pods
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: external-health-monitor-controller-runner
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch", "create", "patch"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: csi-external-health-monitor-controller-role
subjects:
- kind: ServiceAccount
name: csi-external-health-monitor-controller
namespace: kube-system
roleRef:
kind: ClusterRole
name: external-health-monitor-controller-runner
apiGroup: rbac.authorization.k8s.io

---
# Health monitor controller must be able to work with configmaps or leases in the current namespace
# if (and only if) leadership election is enabled
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: kube-system
name: external-health-monitor-controller-cfg
rules:
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "watch", "list", "delete", "update", "create"]

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: csi-external-health-monitor-controller-role-cfg
namespace: kube-system
subjects:
- kind: ServiceAccount
name: csi-external-health-monitor-controller
namespace: kube-system
roleRef:
kind: Role
name: external-health-monitor-controller-cfg
apiGroup: rbac.authorization.k8s.io
24 changes: 24 additions & 0 deletions deploy/addons/volumesnapshots/csi-hostpath-snapshotclass.yaml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2018 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Usage of the v1 API implies that the cluster must have
# external-snapshotter v4.x installed.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-hostpath-snapclass
labels:
addonmanager.kubernetes.io/mode: EnsureExists
driver: hostpath.csi.k8s.io #csi-hostpath
deletionPolicy: Delete
Loading

0 comments on commit 38ed70a

Please sign in to comment.