Skip to content

Commit f694d4f

Browse files
Merge branch 'main' into categories
2 parents dce320c + 02da4c1 commit f694d4f

File tree

1,834 files changed

+186833
-29763
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,834 files changed

+186833
-29763
lines changed

.github/workflows/k8s_apis_sync.yaml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: k8s_apis_sync
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release:
7+
type: string
8+
required: true
9+
description: ''
10+
bucket_folder:
11+
type: string
12+
required: true
13+
description: ''
14+
15+
jobs:
16+
k8s_apis_sync:
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: write
20+
pull-requests: write
21+
actions: write
22+
steps:
23+
- name: Generate a token
24+
id: generate-token
25+
uses: actions/create-github-app-token@v1
26+
with:
27+
app-id: ${{ secrets.DOCS_APP_ID }}
28+
private-key: ${{ secrets.DOCS_APP_PRIVATE_KEY }}
29+
30+
- name: 'Checkout'
31+
uses: actions/checkout@v3
32+
with:
33+
token: ${{ steps.generate-token.outputs.token }}
34+
35+
- name: 'Install crdoc'
36+
run: |-
37+
curl -LO https://github.com/fybrik/crdoc/releases/download/v0.6.3/crdoc_Linux_x86_64.tar.gz
38+
tar -xvzf crdoc_Linux_x86_64.tar.gz
39+
sudo mv crdoc /bin/crdoc
40+
41+
- name: 'Fetch release'
42+
run: |-
43+
RELEASE="${{ github.event.inputs.release }}"
44+
BUCKET_FOLDER="${{ github.event.inputs.bucket_folder }}"
45+
aws s3 cp "s3://redislabs-k8s/${BUCKET_FOLDER}/redis-enterprise-operator-${RELEASE}.tar.gz" --no-sign-request . --region us-east-1
46+
47+
tar xf "redis-enterprise-operator-${RELEASE}.tar.gz"
48+
49+
- name: 'Generate READMEs'
50+
run: |-
51+
mkdir artifacts
52+
mkdir templates
53+
cp content/operate/kubernetes/reference/kubernetes-api-reference-template.tmpl templates/template.tmpl
54+
55+
crdoc --resources crds/reaadb_crd.yaml --output artifacts/redis_enterprise_active_active_database_api.md --template templates/template.tmpl
56+
sed -E -i 's/^### RedisEnterpriseActiveActiveDatabase\./### /g' artifacts/redis_enterprise_active_active_database_api.md
57+
sed -E -i 's/^<sup><sup>\[↩ Parent\]\(#redisenterpriseactiveactivedatabase/<sup><sup>\[↩ Parent\]\(#/g' artifacts/redis_enterprise_active_active_database_api.md
58+
sed -E -i 's/<td><a href="#redisenterpriseactiveactivedatabase/<td><a href="#/' artifacts/redis_enterprise_active_active_database_api.md
59+
sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_active_active_database_api.md
60+
awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_active_active_database_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_active_active_database_api.md
61+
62+
crdoc --resources crds/rec_crd.yaml --output artifacts/redis_enterprise_cluster_api.md --template templates/template.tmpl
63+
sed -E -i 's/^### RedisEnterpriseCluster\./### /g' artifacts/redis_enterprise_cluster_api.md
64+
sed -E -i 's/^<sup><sup>\[↩ Parent\]\(#redisenterprisecluster/<sup><sup>\[↩ Parent\]\(#/g' artifacts/redis_enterprise_cluster_api.md
65+
sed -E -i 's/<td><a href="#redisenterprisecluster/<td><a href="#/' artifacts/redis_enterprise_cluster_api.md
66+
sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_cluster_api.md
67+
awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_cluster_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_cluster_api.md
68+
69+
crdoc --resources crds/redb_crd.yaml --output artifacts/redis_enterprise_database_api.md --template templates/template.tmpl
70+
sed -E -i 's/^### RedisEnterpriseDatabase\./### /g' artifacts/redis_enterprise_database_api.md
71+
sed -E -i 's/^<sup><sup>\[↩ Parent\]\(#redisenterprisedatabase/<sup><sup>\[↩ Parent\]\(#/g' artifacts/redis_enterprise_database_api.md
72+
sed -E -i 's/<td><a href="#redisenterprisedatabase/<td><a href="#/' artifacts/redis_enterprise_database_api.md
73+
sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_database_api.md
74+
awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_database_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_database_api.md
75+
76+
crdoc --resources crds/rerc_crd.yaml --output artifacts/redis_enterprise_remote_cluster_api.md --template templates/template.tmpl
77+
sed -E -i 's/^### RedisEnterpriseRemoteCluster\./### /g' artifacts/redis_enterprise_remote_cluster_api.md
78+
sed -E -i 's/^<sup><sup>\[↩ Parent\]\(#redisenterpriseremotecluster/<sup><sup>\[↩ Parent\]\(#/g' artifacts/redis_enterprise_remote_cluster_api.md
79+
sed -E -i 's/<td><a href="#redisenterpriseremotecluster/<td><a href="#/' artifacts/redis_enterprise_remote_cluster_api.md
80+
sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_remote_cluster_api.md
81+
awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_remote_cluster_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_remote_cluster_api.md
82+
83+
- name: 'Generate YAML snippets'
84+
run: |-
85+
function formatYamlSnippet() {
86+
cat > "$2" << EOL
87+
\`\`\`yaml
88+
$(cat $1)
89+
\`\`\`
90+
EOL
91+
}
92+
93+
formatYamlSnippet admission-service.yaml content/embeds/admission-service.md
94+
formatYamlSnippet admission/webhook.yaml content/embeds/admission_webhook.md
95+
formatYamlSnippet examples/v1/rec.yaml content/embeds/rec.md
96+
formatYamlSnippet examples/v1alpha1/reaadb.yaml content/embeds/reaadb.md
97+
formatYamlSnippet examples/v1alpha1/redb.yaml content/embeds/redb.md
98+
formatYamlSnippet examples/v1alpha1/rerc.yaml content/embeds/rerc.md
99+
formatYamlSnippet log_collector/log_collector_role_all_mode.yaml content/embeds/log_collector_role_all_mode.md
100+
formatYamlSnippet log_collector/log_collector_role_restricted_mode.yaml content/embeds/log_collector_role_restricted_mode.md
101+
formatYamlSnippet multi-namespace-redb/operator_cluster_role_binding.yaml content/embeds/multi-ns_operator_cluster_role_binding.md
102+
formatYamlSnippet multi-namespace-redb/operator_cluster_role.yaml content/embeds/multi-ns_operator_cluster_role.md
103+
formatYamlSnippet multi-namespace-redb/role_binding.yaml content/embeds/multi-ns_role_binding.md
104+
formatYamlSnippet multi-namespace-redb/role.yaml content/embeds/multi-ns_role.md
105+
formatYamlSnippet openshift/admission-service.yaml content/embeds/openshift_admission-service.md
106+
formatYamlSnippet openshift/rec_rhel.yaml content/embeds/openshift_rec.md
107+
formatYamlSnippet openshift/role_binding.yaml content/embeds/openshift_role_binding.md
108+
formatYamlSnippet openshift/role.yaml content/embeds/openshift_role.md
109+
formatYamlSnippet openshift/scc.yaml content/embeds/openshift_scc.md
110+
formatYamlSnippet openshift/service_account.yaml content/embeds/openshift_service_account.md
111+
formatYamlSnippet rack_awareness/rack_aware_cluster_role_binding.yaml content/embeds/rack_aware_cluster_role_binding.md
112+
formatYamlSnippet rack_awareness/rack_aware_cluster_role.yaml content/embeds/rack_aware_cluster_role.md
113+
formatYamlSnippet rack_awareness/rack_aware_rec.yaml content/embeds/rack_aware_rec.md
114+
formatYamlSnippet role_binding.yaml content/embeds/role_binding.md
115+
formatYamlSnippet role.yaml content/embeds/role.md
116+
formatYamlSnippet service_account.yaml content/embeds/service_account.md
117+
118+
- name: 'Send pull request'
119+
env:
120+
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
121+
run: |-
122+
RELEASE="${{ github.event.inputs.release }}"
123+
BRANCH="k8s_apis_docs_${RELEASE}"
124+
125+
# Setup git email and username
126+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
127+
git config user.name "github-actions[bot]"
128+
129+
git checkout -b "${BRANCH}"
130+
131+
cp artifacts/redis_enterprise_active_active_database_api.md content/operate/kubernetes/reference/
132+
cp artifacts/redis_enterprise_cluster_api.md content/operate/kubernetes/reference/
133+
cp artifacts/redis_enterprise_database_api.md content/operate/kubernetes/reference/
134+
cp artifacts/redis_enterprise_remote_cluster_api.md content/operate/kubernetes/reference/
135+
136+
git apply content/operate/kubernetes/reference/kubernetes-api-reference-frontmatter.patch
137+
138+
git add content/operate/kubernetes/reference/
139+
git add content/embeds/
140+
141+
git commit -m "k8s api docs ${RELEASE}"
142+
git push origin "${BRANCH}"
143+
144+
gh pr create \
145+
--body "k8s api docs ${RELEASE}" \
146+
--title "k8s api docs ${RELEASE}" \
147+
--head "$BRANCH" \
148+
--base "main"

.github/workflows/main-staging.yml

Lines changed: 80 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,92 @@ jobs:
3333
echo "ERROR: Invalid branch name ${{ github.ref_name }}!"
3434
exit 1
3535
fi
36-
- name: Configure Hugo
36+
37+
- name: Install dependencies
38+
run: make deps
39+
40+
- name: Build out all versions
3741
run: |
42+
set -x
43+
44+
function setBaseUrl() {
3845
if [[ "${{ github.ref_name }}" == "main" ]]
3946
then
4047
hugo_root_path=docs/staging/dev
4148
elif [[ "${{ github.ref_name }}" == "latest" ]]
4249
then
43-
hugo_root_path="docs/latest"
50+
hugo_root_path="docs/latest"
4451
elif [[ "${{ endsWith(github.ref_name, '-build') }}" == "true" ]]
4552
then
4653
hugo_root_path=`echo docs/version/${{ github.ref_name }} | sed 's/-build$//'`
4754
else
4855
hugo_root_path=docs/staging/${{ github.ref_name }}
4956
fi \
5057
&& sed -i "s#baseURL = \"https://redis.io\"#baseURL = \"https://redis.io/$hugo_root_path\"#g" config.toml
51-
- name: Install dependencies and run Hugo
52-
run: make all
58+
}
59+
60+
setBaseUrl
61+
kubernetes_versions=($(find content/operate/kubernetes/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
62+
rs_versions=($(find content/operate/rs/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
63+
64+
# build latest
65+
for version in "${kubernetes_versions[@]}"; do
66+
rm -r "content/operate/kubernetes/${version}"
67+
done
68+
for version in "${rs_versions[@]}"; do
69+
rm -r "content/operate/rs/${version}"
70+
done
71+
make all
72+
73+
git checkout .
74+
75+
# build all versions
76+
for version in "${kubernetes_versions[@]}"; do
77+
78+
setBaseUrl
79+
80+
# for each version, remove all other versions before building
81+
versions_to_remove=($(echo "${kubernetes_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
82+
for version_to_remove in "${versions_to_remove[@]}"; do
83+
rm -r "content/operate/kubernetes/${version_to_remove}"
84+
done
85+
86+
cp -r "content/operate/kubernetes/${version}"/* content/operate/kubernetes/
87+
rm -r "content/operate/kubernetes/${version}"
88+
sed -i 's/id="versionSelectorKubernetesValue" class="version-selector-control">latest/id="versionSelectorKubernetesValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
89+
sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis for Kubernetes/' content/operate/kubernetes/_index.md
90+
91+
# inject replace command in meta-links to make sure editURL and issuesURL point to right version
92+
sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/kubernetes\/\` \"operate\/kubernetes\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
93+
94+
hugo -d "kubernetes-${version}"
95+
96+
git checkout .
97+
done
98+
99+
for version in "${rs_versions[@]}"; do
100+
101+
setBaseUrl
102+
103+
# for each version, remove all other versions before building
104+
versions_to_remove=($(echo "${rs_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
105+
for version_to_remove in "${versions_to_remove[@]}"; do
106+
rm -r "content/operate/rs/${version_to_remove}"
107+
done
108+
109+
cp -r "content/operate/rs/${version}"/* content/operate/rs/
110+
rm -r "content/operate/rs/${version}"
111+
sed -i 's/id="versionSelectorRsValue" class="version-selector-control">latest/id="versionSelectorRsValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
112+
sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis Software/' content/operate/rs/_index.md
113+
114+
# inject replace command in meta-links to make sure editURL and issuesURL point to right version
115+
sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/rs\/\` \"operate\/rs\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
116+
117+
hugo -d "rs-${version}"
118+
119+
git checkout .
120+
done
121+
53122
- name: List client examples
54123
run: ls "${{ github.workspace }}/examples"
55124
- name: List files to be published
@@ -80,5 +149,12 @@ jobs:
80149
bucket_path=staging/${{ github.ref_name }}
81150
fi \
82151
&& ./google-cloud-sdk/bin/gsutil -m rsync -r -c -j html -d ${{ github.workspace }}/public gs://$BUCKET/$bucket_path
152+
153+
versioned_builds=($(find . -type d -regex ".*[0-9-]" -maxdepth 1 | sed -E 's/^.\///'))
154+
for versioned_build in "${versioned_builds[@]}"; do
155+
product=$(grep -Eo '[a-zA-Z]+' <<< $versioned_build)
156+
gsutil -m rsync -r -c -j html -d "${{ github.workspace }}/${versioned_build}/operate/${product}" "gs://${BUCKET}/${versioned_build}/operate/${product}"
157+
done
158+
83159
- name: End
84160
run: echo "This job's status is ${{ job.status }}."

.github/workflows/main.yml

Lines changed: 92 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,92 @@ jobs:
3333
echo "ERROR: Invalid branch name ${{ github.ref_name }}!"
3434
exit 1
3535
fi
36-
- name: Configure Hugo
36+
37+
- name: Install dependencies
38+
run: make deps
39+
40+
- name: Build out all versions
3741
run: |
42+
set -x
43+
44+
function setBaseUrl() {
3845
if [[ "${{ github.ref_name }}" == "main" ]]
3946
then
4047
hugo_root_path=docs/staging/dev
4148
elif [[ "${{ github.ref_name }}" == "latest" ]]
4249
then
43-
hugo_root_path="docs/latest"
50+
hugo_root_path="docs/latest"
4451
elif [[ "${{ endsWith(github.ref_name, '-build') }}" == "true" ]]
4552
then
4653
hugo_root_path=`echo docs/version/${{ github.ref_name }} | sed 's/-build$//'`
4754
else
4855
hugo_root_path=docs/staging/${{ github.ref_name }}
4956
fi \
5057
&& sed -i "s#baseURL = \"https://redis.io\"#baseURL = \"https://redis.io/$hugo_root_path\"#g" config.toml
51-
- name: Install dependencies and run Hugo
52-
run: make all
58+
}
59+
60+
setBaseUrl
61+
kubernetes_versions=($(find content/operate/kubernetes/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
62+
rs_versions=($(find content/operate/rs/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
63+
64+
# build latest
65+
for version in "${kubernetes_versions[@]}"; do
66+
rm -r "content/operate/kubernetes/${version}"
67+
done
68+
for version in "${rs_versions[@]}"; do
69+
rm -r "content/operate/rs/${version}"
70+
done
71+
make all
72+
73+
git checkout .
74+
75+
# build all versions
76+
for version in "${kubernetes_versions[@]}"; do
77+
78+
setBaseUrl
79+
80+
# for each version, remove all other versions before building
81+
versions_to_remove=($(echo "${kubernetes_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
82+
for version_to_remove in "${versions_to_remove[@]}"; do
83+
rm -r "content/operate/kubernetes/${version_to_remove}"
84+
done
85+
86+
cp -r "content/operate/kubernetes/${version}"/* content/operate/kubernetes/
87+
rm -r "content/operate/kubernetes/${version}"
88+
sed -i 's/id="versionSelectorKubernetesValue" class="version-selector-control">latest/id="versionSelectorKubernetesValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
89+
sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis for Kubernetes/' content/operate/kubernetes/_index.md
90+
91+
# inject replace command in meta-links to make sure editURL and issuesURL point to right version
92+
sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/kubernetes\/\` \"operate\/kubernetes\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
93+
94+
hugo -d "kubernetes-${version}"
95+
96+
git checkout .
97+
done
98+
99+
for version in "${rs_versions[@]}"; do
100+
101+
setBaseUrl
102+
103+
# for each version, remove all other versions before building
104+
versions_to_remove=($(echo "${rs_versions[@]}" "${version}" | tr ' ' '\n' | sort | uniq -u))
105+
for version_to_remove in "${versions_to_remove[@]}"; do
106+
rm -r "content/operate/rs/${version_to_remove}"
107+
done
108+
109+
cp -r "content/operate/rs/${version}"/* content/operate/rs/
110+
rm -r "content/operate/rs/${version}"
111+
sed -i 's/id="versionSelectorRsValue" class="version-selector-control">latest/id="versionSelectorRsValue" class="version-selector-control">v'"${version}"'/' layouts/partials/docs-nav.html
112+
sed -i 's/linkTitle: '"${version}"'/linkTitle: Redis Software/' content/operate/rs/_index.md
113+
114+
# inject replace command in meta-links to make sure editURL and issuesURL point to right version
115+
sed -i "11i \{\{ \$gh_file = replaceRE \`\^operate\/rs\/\` \"operate\/rs\/$version\/\" \$gh_file }}" layouts/partials/meta-links.html
116+
117+
hugo -d "rs-${version}"
118+
119+
git checkout .
120+
done
121+
53122
- name: List client examples
54123
run: ls "${{ github.workspace }}/examples"
55124
- name: List files to be published
@@ -80,5 +149,24 @@ jobs:
80149
bucket_path=staging/${{ github.ref_name }}
81150
fi \
82151
&& ./google-cloud-sdk/bin/gsutil -m rsync -r -c -j html -d ${{ github.workspace }}/public gs://$BUCKET/$bucket_path
152+
153+
if [[ "${{ github.ref_name }}" == "latest" ]]
154+
then
155+
versioned_builds=($(find . -type d -regex ".*[0-9-]" -maxdepth 1 | sed -E 's/^.\///'))
156+
for versioned_build in "${versioned_builds[@]}"; do
157+
product=$(grep -Eo '[a-zA-Z]+' <<< $versioned_build)
158+
gsutil -m rsync -r -c -j html -d "${{ github.workspace }}/${versioned_build}/operate/${product}" "gs://${BUCKET}/${versioned_build}/operate/${product}"
159+
done
160+
fi
161+
162+
if [[ "$bucket_path" == staging/* ]]
163+
then
164+
versioned_builds=($(find . -type d -regex ".*[0-9-]" -maxdepth 1 | sed -E 's/^.\///'))
165+
for versioned_build in "${versioned_builds[@]}"; do
166+
product=$(grep -Eo '[a-zA-Z]+' <<< $versioned_build)
167+
gsutil -m rsync -r -c -j html -d "${{ github.workspace }}/${versioned_build}/operate/${product}" "gs://${BUCKET}/${bucket_path}/${versioned_build}/operate/${product}"
168+
done
169+
fi
170+
83171
- name: End
84172
run: echo "This job's status is ${{ job.status }}."

0 commit comments

Comments
 (0)