Skip to content

Commit d4af1fa

Browse files
committed
chore: Generated commit to update templated files since the last template run up to stackabletech/operator-templating@6c07dc9
Reference-to: stackabletech/operator-templating@6c07dc9 (DO NOT MERGE. Will be tested in https://github.com/stackabletech/zookeeper-operator first.)
1 parent 136b53b commit d4af1fa

9 files changed

Lines changed: 241 additions & 177 deletions

File tree

.github/workflows/build.yaml

Lines changed: 77 additions & 108 deletions
Large diffs are not rendered by default.

.github/workflows/general_daily_security.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ permissions: {}
1515
jobs:
1616
audit:
1717
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
# rustsec/audit-check publishes its results as a Check run, which requires this scope
21+
checks: write
1822
steps:
19-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
23+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2024
with:
2125
persist-credentials: false
2226
- uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998 # v2.0.0
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: Integration Test (Custom)
3+
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
test-runner:
8+
description: Name of the test runner, eg. `amd64` (see test/interu.yaml)
9+
required: true
10+
test-suite:
11+
description: Name of the test-suite, eg. `openshift`
12+
test:
13+
description: Name of the test, eg. `smoke`
14+
15+
permissions: {}
16+
17+
jobs:
18+
test:
19+
name: Run Integration Test
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
steps:
24+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
25+
with:
26+
persist-credentials: false
27+
submodules: recursive
28+
29+
- name: Run Integration Test
30+
id: test
31+
uses: stackabletech/actions/run-integration-test@bc17d3c4808a2343685853d0d757ad7614f660d4 # v0.17.4
32+
with:
33+
replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }}
34+
otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }}
35+
test-mode-input: ${{ inputs.test-runner }}
36+
test-suite: ${{ inputs.test-suite }}
37+
test-mode: custom
38+
test: ${{ inputs.test }}
39+
40+
- name: Send Notification
41+
if: ${{ failure() || github.run_attempt > 1 }}
42+
uses: stackabletech/actions/send-slack-notification@bc17d3c4808a2343685853d0d757ad7614f660d4 # v0.17.4
43+
with:
44+
slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }}
45+
failed-tests: ${{ steps.test.outputs.failed-tests }}
46+
test-health: ${{ steps.test.outputs.health }}
47+
test-result: ${{ steps.test.conclusion }}
48+
channel-id: C07UYJYSMSN # notifications-integration-tests
49+
type: integration-test
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
name: Integration Test (Profile + Schedule)
3+
4+
on:
5+
schedule:
6+
# At 04:00 on Sunday. See: https://crontab.guru/#0_4_*_*_0
7+
- cron: "0 4 * * 0"
8+
workflow_dispatch:
9+
inputs:
10+
test-profile:
11+
description: Name of the test runner, eg. `smoke-latest` or `schedule` (see test/interu.yaml)
12+
required: true
13+
14+
permissions: {}
15+
16+
jobs:
17+
test:
18+
name: Run Integration Test
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
steps:
23+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
24+
with:
25+
persist-credentials: false
26+
submodules: recursive
27+
28+
- name: Determine Profile
29+
id: profile
30+
env:
31+
GITHUB_EVENT_NAME: ${{ github.event_name }}
32+
PROFILE_INPUT: ${{ inputs.test-profile }}
33+
shell: bash
34+
run: |
35+
if [ "$EVENT_NAME" = "schedule" ]; then
36+
echo "PROFILE=schedule" | tee -a "$GITHUB_OUTPUT"
37+
else
38+
echo "PROFILE=${PROFILE_INPUT}" | tee -a "$GITHUB_OUTPUT"
39+
fi
40+
41+
- name: Run Integration Test
42+
id: test
43+
uses: stackabletech/actions/run-integration-test@bc17d3c4808a2343685853d0d757ad7614f660d4 # v0.17.4
44+
with:
45+
replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }}
46+
otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }}
47+
test-mode-input: ${{ steps.profile.outputs.PROFILE }}
48+
test-mode: profile
49+
50+
- name: Send Notification
51+
if: ${{ failure() || github.run_attempt > 1 }}
52+
uses: stackabletech/actions/send-slack-notification@bc17d3c4808a2343685853d0d757ad7614f660d4 # v0.17.4
53+
with:
54+
slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }}
55+
failed-tests: ${{ steps.test.outputs.failed-tests }}
56+
test-health: ${{ steps.test.outputs.health }}
57+
test-result: ${{ steps.test.conclusion }}
58+
channel-id: C07UYJYSMSN # notifications-integration-tests
59+
type: integration-test

.github/workflows/integration-test.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.

.github/workflows/pr_prek.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,20 @@ env:
1717
jobs:
1818
prek:
1919
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
2022
steps:
2123
- name: Install host dependencies
22-
uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
24+
uses: awalsh128/cache-apt-pkgs-action@553a35bb8ebd9fcabcb1c9451aa4c98e1b4ca8a9 # v1.6.3
2325
with:
2426
packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https
2527
version: ubuntu-latest
26-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
28+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2729
with:
2830
persist-credentials: false
2931
submodules: recursive
3032
fetch-depth: 0
31-
- uses: stackabletech/actions/run-prek@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3
33+
- uses: stackabletech/actions/run-prek@bc17d3c4808a2343685853d0d757ad7614f660d4 # v0.17.4
3234
with:
3335
rust: ${{ env.RUST_TOOLCHAIN_VERSION }}
3436
hadolint: ${{ env.HADOLINT_VERSION }}

Makefile

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ docker-build:
2828
docker build --force-rm --build-arg VERSION=${VERSION} -t "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-${ARCH}" -f docker/Dockerfile .
2929

3030
## Chart related targets
31-
compile-chart: version crds
31+
compile-chart: version crds crd-annotation
3232

3333
version:
3434
cat "deploy/helm/${OPERATOR_NAME}/Chart.yaml" | yq ".version = \"${VERSION}\" | .appVersion = \"${VERSION}\"" > "deploy/helm/${OPERATOR_NAME}/Chart.yaml.new"
@@ -40,6 +40,40 @@ crds:
4040
mkdir -p extra
4141
cargo run --bin stackable-"${OPERATOR_NAME}" -- crd > extra/crds.yaml
4242

43+
# This adds CRD metadata for artifacthub.io (AH) to Chart.yaml.
44+
# We don't ship CRDs in our Helm charts (anymore), so we need these annotations to provide details.
45+
# We only list the storage version as we're unsure if AH supports more than one (docs unclear).
46+
#
47+
# It appends a single annotation whose value is a list, one entry per CRD.
48+
# Example: For the secret-operator that comes out as:
49+
#
50+
# artifacthub.io/crds: |-
51+
# - kind: SecretClass
52+
# version: v1alpha2
53+
# name: secretclasses.secrets.stackable.tech
54+
# displayName: SecretClass
55+
# description: A SecretClass is a cluster-global Kubernetes resource that defines ...
56+
# - kind: TrustStore
57+
# version: v1alpha1
58+
# name: truststores.secrets.stackable.tech
59+
# displayName: TrustStore
60+
# description: A TrustStore requests information about how to validate secrets ...
61+
#
62+
# The two yq expressions are split out below so it's easier to review and see what's going on.
63+
64+
# READ step: turn every CRD document in extra/crds.yaml into one AH card entry.
65+
# `[.] | map(...)` collects the documents into a list and maps each one to the format (see above) required by AH.
66+
# The result of this is a list of these entries.
67+
CRD_ANNOTATION_READ := [.] | map(.spec.versions |= map(select(.storage == true))) | map({"kind": .spec.names.kind, "version": .spec.versions[0].name, "name": .metadata.name, "displayName": .spec.names.kind, "description": (.spec.versions[0].schema.openAPIV3Schema.description // "")})
68+
69+
# WRITE step: Write that list to Chart.yaml as an annotation value.
70+
# Literal block scalar so it stays readable in Chart.yaml.
71+
CRD_ANNOTATION_WRITE := .annotations["artifacthub.io/crds"] = strenv(CRDS) | .annotations["artifacthub.io/crds"] style="literal"
72+
73+
crd-annotation: crds
74+
@CRDS="$$(yq ea -o=yaml '$(CRD_ANNOTATION_READ)' extra/crds.yaml)" \
75+
yq -i '$(CRD_ANNOTATION_WRITE)' "deploy/helm/${OPERATOR_NAME}/Chart.yaml"
76+
4377
chart-lint: compile-chart
4478
docker run -it -v $(shell pwd):/build/helm-charts -w /build/helm-charts quay.io/helmpack/chart-testing:v3.5.0 ct lint --config deploy/helm/ct.yaml
4579

deploy/helm/hbase-operator/Chart.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ version: "0.0.0-dev"
55
appVersion: "0.0.0-dev"
66
description: "Kubernetes operator for Apache HBase. Deploy and run HBase masters and region servers with the Stackable Data Platform (SDP)."
77
home: https://github.com/stackabletech/hbase-operator
8+
# One known use of this is the Artifact Hub (AH) listing which shows the logo.
9+
# AH downloads the logo and re-hosts it.
10+
# We opted to not use the project logos (e.g. the Apache Spark logo) here due to trademark concerns.
11+
icon: https://raw.githubusercontent.com/stackabletech/hbase-operator/main/.readme/static/borrowed/Icon_Stackable.svg
812
sources:
913
- https://github.com/stackabletech/hbase-operator
1014
keywords: ["apache-hbase", "hbase", "nosql", "kubernetes", "operator", "big-data"]
@@ -21,3 +25,9 @@ annotations:
2125
url: https://docs.stackable.tech/home/stable/hbase/
2226
- name: support
2327
url: https://github.com/stackabletech/hbase-operator/issues
28+
artifacthub.io/crds: |-
29+
- kind: HbaseCluster
30+
version: v1alpha1
31+
name: hbaseclusters.hbase.stackable.tech
32+
displayName: HbaseCluster
33+
description: An HBase cluster stacklet. This resource is managed by the Stackable operator for Apache HBase.

renovate.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
"extends": [
44
"local>stackabletech/.github:renovate-config"
55
],
6-
"ignorePaths": [".github/workflows/build.yaml", ".github/workflows/general_daily_security.yml", ".github/workflows/integration-test.yml", ".github/workflows/pr_prek.yaml"]
6+
"ignorePaths": [".github/workflows/build.yaml", ".github/workflows/general_daily_security.yml", ".github/workflows/integration-test-custom.yaml", ".github/workflows/integration-test-profile.yaml", ".github/workflows/pr_prek.yaml"]
77
}

0 commit comments

Comments
 (0)