forked from ceph/ceph-csi
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: add yamlgen to build deployment files
This initial version of yamlgen generates deploy/scc.yaml based on the deployment artifact that is provided by the new api/deploy/ocp package. Signed-off-by: Niels de Vos <[email protected]>
- Loading branch information
1 parent
36e099d
commit 5ea99fd
Showing
32 changed files
with
8,850 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Copyright 2021 The Ceph-CSI Authors. | ||
# | ||
# 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. | ||
|
||
.PHONY: all | ||
all: scc.yaml | ||
|
||
scc.yaml: ../api/deploy/ocp/scc.yaml ../api/deploy/ocp/scc.go | ||
$(MAKE) -C ../tools generate-deploy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
# | ||
# /!\ DO NOT MODIFY THIS FILE | ||
# | ||
# This file has been automatically generated by Ceph-CSI yamlgen. | ||
# The source for the contents can be found in the api/deploy directory, make | ||
# your modifications there. | ||
# | ||
--- | ||
kind: SecurityContextConstraints | ||
apiVersion: security.openshift.io/v1 | ||
metadata: | ||
name: "ceph-csi" | ||
# To allow running privilegedContainers | ||
allowPrivilegedContainer: true | ||
# CSI daemonset pod needs hostnetworking | ||
allowHostNetwork: true | ||
# This need to be set to true as we use HostPath | ||
allowHostDirVolumePlugin: true | ||
priority: | ||
# SYS_ADMIN is needed for rbd to execture rbd map command | ||
allowedCapabilities: ["SYS_ADMIN"] | ||
# Needed as we run liveness container on daemonset pods | ||
allowHostPorts: true | ||
# Needed as we are setting this in RBD plugin pod | ||
allowHostPID: true | ||
# Required for encryption | ||
allowHostIPC: true | ||
# Set to false as we write to RootFilesystem inside csi containers | ||
readOnlyRootFilesystem: false | ||
runAsUser: | ||
type: RunAsAny | ||
seLinuxContext: | ||
type: RunAsAny | ||
fsGroup: | ||
type: RunAsAny | ||
supplementalGroups: | ||
type: RunAsAny | ||
# The type of volumes which are mounted to csi pods | ||
volumes: | ||
- configMap | ||
- projected | ||
- emptyDir | ||
- hostPath | ||
users: | ||
# A user needs to be added for each service account. | ||
- "system:serviceaccount:ceph-csi:csi-rbd-plugin-sa" | ||
- "system:serviceaccount:ceph-csi:csi-rbd-provisioner-sa" | ||
- "system:serviceaccount:ceph-csi:csi-cephfs-plugin-sa" | ||
# yamllint disable-line rule:line-length | ||
- "system:serviceaccount:ceph-csi:csi-cephfs-provisioner-sa" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright 2021 The Ceph-CSI Authors. | ||
# | ||
# 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. | ||
|
||
.PHONY: generate-deploy | ||
generate-deploy: yamlgen/main.go | ||
go run yamlgen/main.go |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Assorted Tools for maintaining and building Ceph-CSI | ||
|
||
## `yamlgen` | ||
|
||
`yamlgen` reads deployment configurations from the `api/` package and generates | ||
YAML files that can be used for deploying without advanced automation like | ||
Rook. The generated files are located under `deploy/`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/* | ||
Copyright 2021 The Ceph-CSI Authors. | ||
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. | ||
*/ | ||
|
||
package main | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
|
||
"github.com/ceph/ceph-csi/api/deploy/ocp" | ||
) | ||
|
||
const header = `--- | ||
# | ||
# /!\ DO NOT MODIFY THIS FILE | ||
# | ||
# This file has been automatically generated by Ceph-CSI yamlgen. | ||
# The source for the contents can be found in the api/deploy directory, make | ||
# your modifications there. | ||
# | ||
` | ||
|
||
type deploymentArtifact struct { | ||
filename string | ||
// FIXME: This is not dynamic enough for additional YAML generating | ||
// functions. Need to look into typecasting the functions and passing | ||
// interface{} instead of ocp.SecurityContextConstraintsValues. | ||
yamlFunc func(ocp.SecurityContextConstraintsValues) (string, error) | ||
defaults ocp.SecurityContextConstraintsValues | ||
} | ||
|
||
var yamlArtifacts = []deploymentArtifact{ | ||
{ | ||
"../deploy/scc.yaml", | ||
ocp.NewSecurityContextConstraintsYAML, | ||
ocp.SecurityContextConstraintsDefaults, | ||
}, | ||
} | ||
|
||
func main() { | ||
for _, artifact := range yamlArtifacts { | ||
writeArtifact(artifact) | ||
} | ||
} | ||
|
||
func writeArtifact(artifact deploymentArtifact) { | ||
fmt.Printf("creating %q...", artifact.filename) | ||
|
||
f, err := os.Create(artifact.filename) | ||
if err != nil { | ||
panic(fmt.Sprintf("failed to create file %q: %v", artifact.filename, err)) | ||
} | ||
|
||
_, err = f.WriteString(header) | ||
if err != nil { | ||
panic(fmt.Sprintf("failed to write header to %q: %v", artifact.filename, err)) | ||
} | ||
|
||
data, err := artifact.yamlFunc(artifact.defaults) | ||
if err != nil { | ||
panic(fmt.Sprintf("failed to generate YAML for %q: %v", artifact.filename, err)) | ||
} | ||
|
||
_, err = f.WriteString(data) | ||
if err != nil { | ||
panic(fmt.Sprintf("failed to write contents to %q: %v", artifact.filename, err)) | ||
} | ||
|
||
fmt.Println("done!") | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.