Skip to content
This repository has been archived by the owner on Oct 22, 2024. It is now read-only.

Distributed provisioning #838

Merged
merged 24 commits into from
Jan 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b5b4fb7
update runtime deps with more recent Intel-internal IDs
pohly Dec 7, 2020
5e68dc4
test: add command for dumping PVs and PVCs
pohly Nov 27, 2020
c1c81d8
setup-deployment.sh: better error message when files are missing
pohly Nov 5, 2020
14cb92e
pmem-csi-driver: remove redundant driver mode check
pohly Oct 30, 2020
64ccb96
pmem-csi-driver: support KUBECONFIG
pohly Nov 5, 2020
fb67626
pmem-csi-driver: refactor storage capacity metrics code
pohly Nov 5, 2020
2467c36
distributed provisioning
pohly Oct 30, 2020
cd67c2e
pmem-csi-driver: configurable QPS+burst
pohly Dec 8, 2020
390d993
Revert "test: disable stress test because of volume leaks"
pohly Dec 18, 2020
19d3f57
scheduler extension: simpler error reporting
pohly Dec 20, 2020
1ea911d
deploy: allow pod scheduling when webhook is down
pohly Dec 20, 2020
802c8b6
test: comment fix
pohly Jan 14, 2021
0d36389
deploy: consistent object naming, app.kubernetes.io labels
pohly Jan 14, 2021
4ea8803
operator: distributed provisioning, scheduler extensions
pohly Jan 12, 2021
61351f1
test: add delete-deployment.sh
pohly Jan 14, 2021
513b89b
test: run gotests with less verbose output
pohly Jan 15, 2021
4029bfd
operator test: avoid race around access to events
pohly Jan 17, 2021
ded3e36
operator: update to controller-runtime v0.8.0
pohly Jan 17, 2021
fbd56a0
test: copy initial operator test objects
pohly Jan 18, 2021
2bd9fd4
test: workaround for write/write map access in Patch
pohly Jan 18, 2021
e260ed1
test: fix operator event checking
pohly Jan 18, 2021
a03a700
deploy: use allowedTopologies in storage classes
pohly Jan 15, 2021
7c4ee86
deploy: use allowedTopologies in storage classes, II
pohly Jan 18, 2021
2b24963
deploy: reschedule PVCs on nodes with no PMEM-CSI driver
pohly Jan 19, 2021
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
7 changes: 2 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,6 @@ KUSTOMIZE += deploy/common/pmem-storageclass-cache.yaml=deploy/kustomize/storage
KUSTOMIZE += deploy/common/pmem-storageclass-late-binding.yaml=deploy/kustomize/storageclass-late-binding
KUSTOMIZE += deploy/operator/pmem-csi-operator.yaml=deploy/kustomize/operator

# Special one-off deployment with device mode = fake.
KUSTOMIZE += deploy/kubernetes-1.19/pmem-csi-fake.yaml=deploy/kustomize/kubernetes-base-fake

KUSTOMIZE_OUTPUT := $(foreach item,$(KUSTOMIZE),$(firstword $(subst =, ,$(item))))

# This function takes the name of a .yaml output file and returns the
Expand All @@ -204,14 +201,14 @@ $(KUSTOMIZE_OUTPUT): _work/kustomize $(KUSTOMIZE_INPUT)
mkdir -p ${@D}
$(call KUSTOMIZE_INVOCATION,$<,$@) >$@
if echo "$@" | grep '/pmem-csi-' | grep -qv '\-operator'; then \
dir=$$(echo "$@" | tr - / | sed -e 's;kubernetes/;kubernetes-;' -e 's;/alpha/;-alpha/;' -e 's/.yaml//' -e 's;/pmem/csi/;/;') && \
dir=$$(echo "$@" | tr - / | sed -e 's;kubernetes/;kubernetes-;' -e 's;/alpha/;-alpha/;' -e 's;/distributed/;-distributed/;' -e 's/.yaml//' -e 's;/pmem/csi/;/;') && \
mkdir -p $$dir && \
cp $@ $$dir/pmem-csi.yaml && \
echo 'resources: [ pmem-csi.yaml ]' > $$dir/kustomization.yaml; \
fi

kustomize: _work/go-bindata clean_kustomize_output $(KUSTOMIZE_OUTPUT)
$< -o deploy/bindata_generated.go -pkg deploy deploy/kubernetes-*/*/pmem-csi.yaml
$< -o deploy/bindata_generated.go -pkg deploy deploy/kubernetes-*/*/pmem-csi.yaml deploy/kustomize/webhook/webhook.yaml deploy/kustomize/scheduler/scheduler-service.yaml

clean_kustomize_output:
rm -rf deploy/kubernetes-*
Expand Down
93 changes: 60 additions & 33 deletions deploy/bindata_generated.go

Large diffs are not rendered by default.

53 changes: 24 additions & 29 deletions deploy/crd/pmem-csi.intel.com_pmemcsideployments.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,9 @@ spec:
spec:
description: DeploymentSpec defines the desired state of Deployment
properties:
caCert:
description: CACert encoded root certificate of the CA by which the
registry and node controller certificates are signed If not provided
operator uses a self-signed CA certificate
format: byte
type: string
controllerDriverResources:
description: ControllerDriverResources Compute resources required
by driver container running on master node
by central driver container
properties:
limits:
additionalProperties:
Expand All @@ -88,6 +82,12 @@ spec:
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
type: object
controllerTLSSecret:
description: ControllerTLSSecret is the name of a secret which contains
ca.crt, tls.crt and tls.key data for the scheduler extender and
pod mutation webhook. A controller is started if (and only if) this
secret is specified.
type: string
deviceMode:
description: DeviceMode to use to manage PMEM devices.
enum:
Expand Down Expand Up @@ -118,17 +118,14 @@ spec:
logLevel:
description: LogLevel number for the log verbosity
type: integer
nodeControllerCert:
description: NodeControllerCert encoded certificate signed by a CA
for node controller server authentication If not provided, provisioned
one by the operator using self-signed CA
format: byte
type: string
nodeControllerKey:
description: NodeControllerPrivateKey encoded private key used for
node controller server certificate If not provided, provisioned
one by the operator
format: byte
mutatePods:
description: MutatePod defines how a mutating pod webhook is configured
if a controller is started. The field is ignored if the controller
is not enabled. The default is "Try".
enum:
- Always
- Try
- Never
type: string
nodeDriverResources:
description: NodeDriverResources Compute resources required by driver
Expand Down Expand Up @@ -232,17 +229,15 @@ spec:
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
type: object
registryCert:
description: RegistryCert encoded certificate signed by a CA for registry
server authentication If not provided, provisioned one by the operator
using self-signed CA
format: byte
type: string
registryKey:
description: RegistryPrivateKey encoded private key used for registry
server certificate If not provided, provisioned one by the operator
format: byte
type: string
schedulerNodePort:
description: SchedulerNodePort, if non-zero, ensures that the "scheduler"
service is created as a NodeService with that fixed port number.
Otherwise that service is created as a cluster service. The number
must be from the range reserved by Kubernetes for node ports. This
is useful if the kube-scheduler cannot reach the scheduler extender
via a cluster service.
format: int32
type: integer
type: object
status:
description: DeploymentStatus defines the observed state of Deployment
Expand Down
Loading