Skip to content

Commit 89b66a0

Browse files
committed
add epam/edp-nexus-operator
Signed-off-by: Sebastian Hoß <seb@xn--ho-hia.de>
1 parent eea4b41 commit 89b66a0

File tree

23 files changed

+9426
-0
lines changed

23 files changed

+9426
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# SPDX-FileCopyrightText: The kube-custom-resources-rs Authors
2+
# SPDX-License-Identifier: 0BSD
3+
4+
name: Release edp_epam_com
5+
on:
6+
schedule:
7+
- cron: 4 11 * * SUN
8+
workflow_dispatch:
9+
jobs:
10+
release:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: read
14+
steps:
15+
- id: checkout
16+
name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
- id: commits
21+
name: Count Commits
22+
run: echo "count=$(git rev-list --count HEAD --since='last Sunday' -- custom-resources/edp_epam_com)" >> $GITHUB_OUTPUT
23+
- id: release
24+
name: Create Release Version
25+
if: steps.commits.outputs.count > 0
26+
run: echo "version=1.$(date --utc +'%Y%m%d').$(date --utc +'%-H%M%S')" >> $GITHUB_OUTPUT
27+
- name: Set up Rust
28+
if: steps.commits.outputs.count > 0
29+
uses: dtolnay/rust-toolchain@stable
30+
- name: Install cargo-workspaces
31+
uses: taiki-e/install-action@v2
32+
with:
33+
tool: cargo-edit
34+
- name: Cargo Version
35+
if: steps.commits.outputs.count > 0
36+
run: cargo set-version --package kcr_edp_epam_com ${{ steps.release.outputs.version }}
37+
- name: Publish to crates.io
38+
if: steps.commits.outputs.count > 0
39+
run: >
40+
cargo publish
41+
--allow-dirty
42+
--token ${{ secrets.CRATES_IO_TOKEN }}
43+
--package kcr_edp_epam_com
44+
--jobs 1
45+
--no-verify
46+
env:
47+
RUSTFLAGS: "-A warnings"
48+
- id: mail
49+
name: Send Mail
50+
if: steps.commits.outputs.count > 0
51+
uses: dawidd6/action-send-mail@v5
52+
with:
53+
server_address: ${{ secrets.MAIL_SERVER }}
54+
server_port: ${{ secrets.MAIL_PORT }}
55+
username: ${{ secrets.MAIL_USERNAME }}
56+
password: ${{ secrets.MAIL_PASSWORD }}
57+
subject: ${{ github.event.repository.name }}/edp_epam_com version ${{ steps.release.outputs.version }} published
58+
body: See ${{ steps.create_release.outputs.url }} for details.
59+
to: ${{ secrets.MAIL_RECIPIENT }}
60+
from: ${{ secrets.MAIL_SENDER }}
61+
- id: matrix
62+
name: Send Matrix Message
63+
if: steps.commits.outputs.count > 0
64+
uses: s3krit/matrix-message-action@v0.0.3
65+
with:
66+
room_id: ${{ secrets.MATRIX_ROOM_ID }}
67+
access_token: ${{ secrets.MATRIX_ACCESS_TOKEN }}
68+
message: ${{ github.event.repository.name }}/edp_epam_com version [${{ steps.release.outputs.version }}](${{ steps.create_release.outputs.url }}) published
69+
server: ${{ secrets.MATRIX_SERVER }}

.reuse/dep5

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,10 @@ Files: crd-catalog/epam/edp-gerrit-operator/*
495495
Copyright: The epam/edp-gerrit-operator Authors
496496
License: Apache-2.0
497497

498+
Files: crd-catalog/epam/edp-nexus-operator/*
499+
Copyright: The epam/edp-nexus-operator Authors
500+
License: Apache-2.0
501+
498502
Files: crd-catalog/eryalito/kubensync-operator/*
499503
Copyright: The eryalito/kubensync-operator Authors
500504
License: Apache-2.0

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ members = [
127127
"custom-resources/dynamodb_services_k8s_aws",
128128
"custom-resources/ec2_services_k8s_aws",
129129
"custom-resources/ecr_services_k8s_aws",
130+
"custom-resources/edp_epam_com",
130131
"custom-resources/efs_services_k8s_aws",
131132
"custom-resources/egressgateway_spidernet_io",
132133
"custom-resources/eks_services_k8s_aws",

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ The following groups are available:
167167
- [dynamodb.services.k8s.aws](https://crates.io/crates/kcr_dynamodb_services_k8s_aws)
168168
- [ec2.services.k8s.aws](https://crates.io/crates/kcr_ec2_services_k8s_aws)
169169
- [ecr.services.k8s.aws](https://crates.io/crates/kcr_ecr_services_k8s_aws)
170+
- [edp.epam.com](https://crates.io/crates/kcr_edp_epam_com)
170171
- [efs.services.k8s.aws](https://crates.io/crates/kcr_efs_services_k8s_aws)
171172
- [egressgateway.spidernet.io](https://crates.io/crates/kcr_egressgateway_spidernet_io)
172173
- [eks.services.k8s.aws](https://crates.io/crates/kcr_eks_services_k8s_aws)

code-generator/src/catalog.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,6 +1356,20 @@ pub const CRD_V1_SOURCES: &'static [UpstreamSource] = &[
13561356
],
13571357
ignores: &[],
13581358
},
1359+
UpstreamSource {
1360+
project_name: "epam/edp-nexus-operator",
1361+
license: APACHE_V2,
1362+
urls: &[
1363+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexusblobstores.yaml",
1364+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexuscleanuppolicies.yaml",
1365+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexuses.yaml",
1366+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexusrepositories.yaml",
1367+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexusroles.yaml",
1368+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexusscripts.yaml",
1369+
"https://github.com/epam/edp-nexus-operator/blob/master/deploy-templates/crds/edp.epam.com_nexususers.yaml",
1370+
],
1371+
ignores: &[],
1372+
},
13591373
UpstreamSource {
13601374
project_name: "eryalito/kubensync-operator",
13611375
license: APACHE_V2,
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
apiVersion: "apiextensions.k8s.io/v1"
2+
kind: "CustomResourceDefinition"
3+
metadata:
4+
annotations:
5+
controller-gen.kubebuilder.io/version: "v0.16.1"
6+
name: "nexusblobstores.edp.epam.com"
7+
spec:
8+
group: "edp.epam.com"
9+
names:
10+
kind: "NexusBlobStore"
11+
listKind: "NexusBlobStoreList"
12+
plural: "nexusblobstores"
13+
singular: "nexusblobstore"
14+
scope: "Namespaced"
15+
versions:
16+
- additionalPrinterColumns:
17+
- description: "Status of the blob store"
18+
jsonPath: ".status.value"
19+
name: "Status"
20+
type: "string"
21+
name: "v1alpha1"
22+
schema:
23+
openAPIV3Schema:
24+
description: "NexusBlobStore is the Schema for the nexusblobstores API."
25+
properties:
26+
apiVersion:
27+
description: "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"
28+
type: "string"
29+
kind:
30+
description: "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
31+
type: "string"
32+
metadata:
33+
type: "object"
34+
spec:
35+
description: "NexusBlobStoreSpec defines the desired state of NexusBlobStore."
36+
properties:
37+
file:
38+
description: "File type blobstore."
39+
properties:
40+
path:
41+
description: "The path to the blobstore contents.\nThis can be an absolute path to anywhere on the system Nexus Repository Manager has access to it or can be a path relative to the sonatype-work directory."
42+
type: "string"
43+
required:
44+
- "path"
45+
type: "object"
46+
name:
47+
description: "Name of the BlobStore.\nName should be unique across all BlobStores."
48+
type: "string"
49+
x-kubernetes-validations:
50+
- message: "Value is immutable"
51+
rule: "self == oldSelf"
52+
nexusRef:
53+
description: "NexusRef is a reference to Nexus custom resource."
54+
properties:
55+
kind:
56+
default: "Nexus"
57+
description: "Kind specifies the kind of the Nexus resource."
58+
type: "string"
59+
name:
60+
description: "Name specifies the name of the Nexus resource."
61+
type: "string"
62+
required:
63+
- "name"
64+
type: "object"
65+
s3:
66+
description: "S3 type blobstore."
67+
properties:
68+
advancedBucketConnection:
69+
description: "A custom endpoint URL, signer type and whether path style access is enabled."
70+
properties:
71+
endpoint:
72+
description: "A custom endpoint URL for third party object stores using the S3 API."
73+
type: "string"
74+
forcePathStyle:
75+
default: false
76+
description: "Setting this flag will result in path-style access being used for all requests."
77+
type: "boolean"
78+
maxConnectionPoolSize:
79+
description: "Setting this value will override the default connection pool size of Nexus of the s3 client for this blobstore."
80+
format: "int32"
81+
type: "integer"
82+
signerType:
83+
description: "An API signature version which may be required for third party object stores using the S3 API."
84+
enum:
85+
- "DEFAULT"
86+
- "S3SignerType"
87+
- "AWSS3V4SignerType"
88+
type: "string"
89+
type: "object"
90+
bucket:
91+
description: "Details of the S3 bucket such as name and region."
92+
properties:
93+
expiration:
94+
default: 3
95+
description: "How many days until deleted blobs are finally removed from the S3 bucket (-1 to disable)."
96+
format: "int32"
97+
type: "integer"
98+
name:
99+
description: "The name of the S3 bucket."
100+
type: "string"
101+
prefix:
102+
description: "The S3 blob store (i.e. S3 object) key prefix."
103+
type: "string"
104+
region:
105+
default: "DEFAULT"
106+
description: "The AWS region to create a new S3 bucket in or an existing S3 bucket's region."
107+
type: "string"
108+
required:
109+
- "name"
110+
type: "object"
111+
bucketSecurity:
112+
description: "Security details for granting access the S3 API."
113+
properties:
114+
accessKeyId:
115+
description: "An IAM access key ID for granting access to the S3 bucket."
116+
properties:
117+
configMapKeyRef:
118+
description: "Selects a key of a ConfigMap."
119+
properties:
120+
key:
121+
description: "The key to select."
122+
type: "string"
123+
name:
124+
default: ""
125+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
126+
type: "string"
127+
required:
128+
- "key"
129+
type: "object"
130+
x-kubernetes-map-type: "atomic"
131+
secretKeyRef:
132+
description: "Selects a key of a secret."
133+
properties:
134+
key:
135+
description: "The key of the secret to select from."
136+
type: "string"
137+
name:
138+
default: ""
139+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
140+
type: "string"
141+
required:
142+
- "key"
143+
type: "object"
144+
x-kubernetes-map-type: "atomic"
145+
type: "object"
146+
role:
147+
description: "An IAM role to assume in order to access the S3 bucket."
148+
type: "string"
149+
secretAccessKey:
150+
description: "The secret access key associated with the specified IAM access key ID."
151+
properties:
152+
configMapKeyRef:
153+
description: "Selects a key of a ConfigMap."
154+
properties:
155+
key:
156+
description: "The key to select."
157+
type: "string"
158+
name:
159+
default: ""
160+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
161+
type: "string"
162+
required:
163+
- "key"
164+
type: "object"
165+
x-kubernetes-map-type: "atomic"
166+
secretKeyRef:
167+
description: "Selects a key of a secret."
168+
properties:
169+
key:
170+
description: "The key of the secret to select from."
171+
type: "string"
172+
name:
173+
default: ""
174+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
175+
type: "string"
176+
required:
177+
- "key"
178+
type: "object"
179+
x-kubernetes-map-type: "atomic"
180+
type: "object"
181+
sessionToken:
182+
description: "An AWS STS session token associated with temporary security credentials which grant access to the S3 bucket."
183+
properties:
184+
configMapKeyRef:
185+
description: "Selects a key of a ConfigMap."
186+
properties:
187+
key:
188+
description: "The key to select."
189+
type: "string"
190+
name:
191+
default: ""
192+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
193+
type: "string"
194+
required:
195+
- "key"
196+
type: "object"
197+
x-kubernetes-map-type: "atomic"
198+
secretKeyRef:
199+
description: "Selects a key of a secret."
200+
properties:
201+
key:
202+
description: "The key of the secret to select from."
203+
type: "string"
204+
name:
205+
default: ""
206+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
207+
type: "string"
208+
required:
209+
- "key"
210+
type: "object"
211+
x-kubernetes-map-type: "atomic"
212+
type: "object"
213+
required:
214+
- "accessKeyId"
215+
- "secretAccessKey"
216+
type: "object"
217+
encryption:
218+
description: "The type of encryption to use if any."
219+
properties:
220+
encryptionKey:
221+
description: "If using KMS encryption, you can supply a Key ID. If left blank, then the default will be used."
222+
type: "string"
223+
encryptionType:
224+
description: "The type of S3 server side encryption to use."
225+
enum:
226+
- "none"
227+
- "s3ManagedEncryption"
228+
- "kmsManagedEncryption"
229+
type: "string"
230+
type: "object"
231+
required:
232+
- "bucket"
233+
type: "object"
234+
softQuota:
235+
description: "Settings to control the soft quota."
236+
properties:
237+
limit:
238+
description: "The limit in MB."
239+
format: "int64"
240+
minimum: 1.0
241+
type: "integer"
242+
type:
243+
description: "Type of the soft quota."
244+
enum:
245+
- "spaceRemainingQuota"
246+
- "spaceUsedQuota"
247+
type: "string"
248+
required:
249+
- "limit"
250+
- "type"
251+
type: "object"
252+
required:
253+
- "name"
254+
- "nexusRef"
255+
type: "object"
256+
status:
257+
description: "NexusBlobStoreStatus defines the observed state of NexusBlobStore."
258+
properties:
259+
error:
260+
description: "Error is an error message if something went wrong."
261+
type: "string"
262+
value:
263+
description: "Value is a status of the blob store."
264+
type: "string"
265+
type: "object"
266+
type: "object"
267+
served: true
268+
storage: true
269+
subresources:
270+
status: {}

0 commit comments

Comments
 (0)