Compare commits
40 Commits
K8s_1.25.9
...
05f085aee7
Author | SHA1 | Date | |
---|---|---|---|
05f085aee7 | |||
072fc56050 | |||
5363eba1a3 | |||
a245cc3d48 | |||
51c477fb07 | |||
1446cba537 | |||
0501a035f2 | |||
6e942af974 | |||
89874d57ce | |||
2b497d4653 | |||
cfa4a5379a | |||
a2c2766ff7 | |||
76d3b6c742 | |||
a5248bd54c | |||
cbedc9679f | |||
740b6b3dc9 | |||
0ba87988bc | |||
aa14a8a3a8 | |||
1f55ff7cfa | |||
ba4a0148ff | |||
c177dbd03b | |||
2e8ce6cc00 | |||
7fd1cf73db | |||
cf001cd0ce | |||
438b944011 | |||
679a9457b5 | |||
8b4a1e380c | |||
0468cd6269 | |||
b808397d47 | |||
8fd0136bb7 | |||
479d896599 | |||
263f156eb1 | |||
f1dfc83d7c | |||
5b950a3834 | |||
978f39d45b | |||
9b9ab6b784 | |||
24dca2755a | |||
0d1db2f29f | |||
48c14afd0f | |||
2addda3f06 |
328
.drone.yml
328
.drone.yml
@ -10,6 +10,11 @@ volumes:
|
|||||||
claim:
|
claim:
|
||||||
name: flexvolsmb-drone-scratch
|
name: flexvolsmb-drone-scratch
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- tag
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Debugging information
|
- name: Debugging information
|
||||||
image: bv11-cr01.bessems.eu/library/packer-extended
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
@ -21,8 +26,6 @@ steps:
|
|||||||
- yamllint --version
|
- yamllint --version
|
||||||
|
|
||||||
- name: Linting
|
- name: Linting
|
||||||
depends_on:
|
|
||||||
- Debugging information
|
|
||||||
image: bv11-cr01.bessems.eu/library/packer-extended
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
pull: always
|
pull: always
|
||||||
commands:
|
commands:
|
||||||
@ -33,8 +36,6 @@ steps:
|
|||||||
scripts
|
scripts
|
||||||
|
|
||||||
- name: Semantic Release (Dry-run)
|
- name: Semantic Release (Dry-run)
|
||||||
depends_on:
|
|
||||||
- Linting
|
|
||||||
image: bv11-cr01.bessems.eu/proxy/library/node:20-slim
|
image: bv11-cr01.bessems.eu/proxy/library/node:20-slim
|
||||||
pull: always
|
pull: always
|
||||||
commands:
|
commands:
|
||||||
@ -42,179 +43,184 @@ steps:
|
|||||||
apt-get update
|
apt-get update
|
||||||
- |
|
- |
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
|
curl \
|
||||||
git-core \
|
git-core \
|
||||||
|
jq \
|
||||||
ca-certificates
|
ca-certificates
|
||||||
|
- |
|
||||||
|
curl -L https://api.github.com/repos/mikefarah/yq/releases/latest | \
|
||||||
|
jq -r '.assets[] | select(.name | endswith("yq_linux_amd64")) | .browser_download_url' | \
|
||||||
|
xargs -I {} curl -L -o /bin/yq {} && \
|
||||||
|
chmod +x /bin/yq
|
||||||
- |
|
- |
|
||||||
npm install \
|
npm install \
|
||||||
semantic-release \
|
semantic-release \
|
||||||
@semantic-release/commit-analyzer \
|
@semantic-release/commit-analyzer \
|
||||||
@semantic-release/release-notes-generator\
|
@semantic-release/exec \
|
||||||
@semantic-release/exec
|
|
||||||
- |
|
- |
|
||||||
|
export K8S_VERSION=$(yq '.components.clusterapi.workload.version.k8s' < ./ansible/vars/metacluster.yml)
|
||||||
export GIT_CREDENTIALS=$${GIT_USERNAME}:$${GIT_APIKEY}
|
export GIT_CREDENTIALS=$${GIT_USERNAME}:$${GIT_APIKEY}
|
||||||
- |
|
- |
|
||||||
npx semantic-release \
|
npx semantic-release \
|
||||||
|
--package @semantic-release/exec \
|
||||||
|
--package semantic-release \
|
||||||
--branches ${DRONE_BRANCH} \
|
--branches ${DRONE_BRANCH} \
|
||||||
--plugins @semantic-release/commit-analyzer,@semantic-release/release-notes-generator,@semantic-release/exec \
|
--tag-format "K8s_$${K8S_VERSION}-v\$${version}" \
|
||||||
--dry-run
|
--dry-run \
|
||||||
|
--plugins @semantic-release/commit-analyzer,@semantic-release/exec \
|
||||||
|
--analyzeCommits @semantic-release/commit-analyzer \
|
||||||
|
--verifyRelease @semantic-release/exec \
|
||||||
|
--verifyReleaseCmd 'echo "$${nextRelease.version}" > .version'
|
||||||
environment:
|
environment:
|
||||||
GIT_APIKEY:
|
GIT_APIKEY:
|
||||||
from_secret: git_apikey
|
from_secret: git_apikey
|
||||||
GIT_USERNAME: djpbessems
|
GIT_USERNAME: djpbessems
|
||||||
|
|
||||||
# Add random change for testing semantic release commit
|
- name: Install Ansible Galaxy collections
|
||||||
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
ansible-galaxy collection install \
|
||||||
|
-r ansible/requirements.yml \
|
||||||
|
-p ./ansible/collections
|
||||||
|
|
||||||
# - name: Install Ansible Galaxy collections
|
- name: Kubernetes Bootstrap Appliance
|
||||||
# depends_on:
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
# - Semantic Release (Dry-run)
|
pull: always
|
||||||
# image: bv11-cr01.bessems.eu/library/packer-extended
|
commands:
|
||||||
# pull: always
|
- |
|
||||||
# commands:
|
sed -i -e "s/<<img-password>>/$${SSH_PASSWORD}/g" \
|
||||||
# - |
|
packer/preseed/UbuntuServer22.04/user-data
|
||||||
# ansible-galaxy collection install \
|
- |
|
||||||
# -r ansible/requirements.yml \
|
export K8S_VERSION=$(yq '.components.clusterapi.workload.version.k8s' < ./ansible/vars/metacluster.yml)
|
||||||
# -p ./ansible/collections
|
export APPLIANCE_VERSION=$(cat .version)
|
||||||
# volumes:
|
- |
|
||||||
# - name: scratch
|
packer init -upgrade \
|
||||||
# path: /scratch
|
./packer
|
||||||
|
- |
|
||||||
|
packer validate \
|
||||||
|
-only=vsphere-iso.bootstrap \
|
||||||
|
-var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
||||||
|
-var docker_username=$${DOCKER_USERNAME} \
|
||||||
|
-var docker_password=$${DOCKER_PASSWORD} \
|
||||||
|
-var repo_username=$${REPO_USERNAME} \
|
||||||
|
-var repo_password=$${REPO_PASSWORD} \
|
||||||
|
-var ssh_password=$${SSH_PASSWORD} \
|
||||||
|
-var vsphere_password=$${VSPHERE_PASSWORD} \
|
||||||
|
-var k8s_version=$K8S_VERSION \
|
||||||
|
-var appliance_version=$APPLIANCE_VERSION \
|
||||||
|
./packer
|
||||||
|
- |
|
||||||
|
packer build \
|
||||||
|
-on-error=cleanup -timestamp-ui \
|
||||||
|
-only=vsphere-iso.bootstrap \
|
||||||
|
-var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
||||||
|
-var docker_username=$${DOCKER_USERNAME} \
|
||||||
|
-var docker_password=$${DOCKER_PASSWORD} \
|
||||||
|
-var repo_username=$${REPO_USERNAME} \
|
||||||
|
-var repo_password=$${REPO_PASSWORD} \
|
||||||
|
-var ssh_password=$${SSH_PASSWORD} \
|
||||||
|
-var vsphere_password=$${VSPHERE_PASSWORD} \
|
||||||
|
-var k8s_version=$K8S_VERSION \
|
||||||
|
-var appliance_version=$APPLIANCE_VERSION \
|
||||||
|
./packer
|
||||||
|
environment:
|
||||||
|
DOCKER_USERNAME:
|
||||||
|
from_secret: docker_username
|
||||||
|
DOCKER_PASSWORD:
|
||||||
|
from_secret: docker_password
|
||||||
|
# PACKER_LOG: 1
|
||||||
|
REPO_USERNAME:
|
||||||
|
from_secret: repo_username
|
||||||
|
REPO_PASSWORD:
|
||||||
|
from_secret: repo_password
|
||||||
|
SSH_PASSWORD:
|
||||||
|
from_secret: ssh_password
|
||||||
|
VSPHERE_PASSWORD:
|
||||||
|
from_secret: vsphere_password
|
||||||
|
volumes:
|
||||||
|
- name: output
|
||||||
|
path: /output
|
||||||
|
- name: scratch
|
||||||
|
path: /scratch
|
||||||
|
|
||||||
# - name: Kubernetes Bootstrap Appliance
|
- name: Kubernetes Upgrade Appliance
|
||||||
# depends_on:
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
# - Install Ansible Galaxy collections
|
pull: alwaysquery(
|
||||||
# image: bv11-cr01.bessems.eu/library/packer-extended
|
commands:
|
||||||
# pull: always
|
- |
|
||||||
# commands:
|
sed -i -e "s/<<img-password>>/$${SSH_PASSWORD}/g" \
|
||||||
# - |
|
packer/preseed/UbuntuServer22.04/user-data
|
||||||
# sed -i -e "s/<<img-password>>/$${SSH_PASSWORD}/g" \
|
- |
|
||||||
# packer/preseed/UbuntuServer22.04/user-data
|
export K8S_VERSION=$(yq '.components.clusterapi.workload.version.k8s' < ./ansible/vars/metacluster.yml)
|
||||||
# - |
|
export APPLIANCE_VERSION=$(cat .version)
|
||||||
# export K8S_VERSION=$(yq '.components.clusterapi.workload.version.k8s' < ./ansible/vars/metacluster.yml)
|
- |
|
||||||
# - |
|
packer init -upgrade \
|
||||||
# packer init -upgrade \
|
./packer
|
||||||
# ./packer
|
- |
|
||||||
# - |
|
packer validate \
|
||||||
# packer validate \
|
-only=vsphere-iso.upgrade \
|
||||||
# -only=vsphere-iso.bootstrap \
|
-var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
||||||
# -var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
-var docker_username=$${DOCKER_USERNAME} \
|
||||||
# -var docker_username=$${DOCKER_USERNAME} \
|
-var docker_password=$${DOCKER_PASSWORD} \
|
||||||
# -var docker_password=$${DOCKER_PASSWORD} \
|
-var repo_username=$${REPO_USERNAME} \
|
||||||
# -var repo_username=$${REPO_USERNAME} \
|
-var repo_password=$${REPO_PASSWORD} \
|
||||||
# -var repo_password=$${REPO_PASSWORD} \
|
-var ssh_password=$${SSH_PASSWORD} \
|
||||||
# -var ssh_password=$${SSH_PASSWORD} \
|
-var vsphere_password=$${VSPHERE_PASSWORD} \
|
||||||
# -var vsphere_password=$${VSPHERE_PASSWORD} \
|
-var k8s_version=$K8S_VERSION \
|
||||||
# -var k8s_version=$K8S_VERSION \
|
-var appliance_version=$APPLIANCE_VERSION \
|
||||||
# ./packer
|
./packer
|
||||||
# - |
|
- |
|
||||||
# packer build \
|
packer build \
|
||||||
# -on-error=cleanup -timestamp-ui \
|
-on-error=cleanup -timestamp-ui \
|
||||||
# -only=vsphere-iso.bootstrap \
|
-only=vsphere-iso.upgrade \
|
||||||
# -var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
-var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
||||||
# -var docker_username=$${DOCKER_USERNAME} \
|
-var docker_username=$${DOCKER_USERNAME} \
|
||||||
# -var docker_password=$${DOCKER_PASSWORD} \
|
-var docker_password=$${DOCKER_PASSWORD} \
|
||||||
# -var repo_username=$${REPO_USERNAME} \
|
-var repo_username=$${REPO_USERNAME} \
|
||||||
# -var repo_password=$${REPO_PASSWORD} \
|
-var repo_password=$${REPO_PASSWORD} \
|
||||||
# -var ssh_password=$${SSH_PASSWORD} \
|
-var ssh_password=$${SSH_PASSWORD} \
|
||||||
# -var vsphere_password=$${VSPHERE_PASSWORD} \
|
-var vsphere_password=$${VSPHERE_PASSWORD} \
|
||||||
# -var k8s_version=$K8S_VERSION \
|
-var k8s_version=$K8S_VERSION \
|
||||||
# ./packer
|
-var appliance_version=$APPLIANCE_VERSION \
|
||||||
# environment:
|
./packer
|
||||||
# DOCKER_USERNAME:
|
environment:
|
||||||
# from_secret: docker_username
|
DOCKER_USERNAME:
|
||||||
# DOCKER_PASSWORD:
|
from_secret: docker_username
|
||||||
# from_secret: docker_password
|
DOCKER_PASSWORD:
|
||||||
# # PACKER_LOG: 1
|
from_secret: docker_password
|
||||||
# REPO_USERNAME:
|
# PACKER_LOG: 1
|
||||||
# from_secret: repo_username
|
REPO_USERNAME:
|
||||||
# REPO_PASSWORD:
|
from_secret: repo_username
|
||||||
# from_secret: repo_password
|
REPO_PASSWORD:
|
||||||
# SSH_PASSWORD:
|
from_secret: repo_password
|
||||||
# from_secret: ssh_password
|
SSH_PASSWORD:
|
||||||
# VSPHERE_PASSWORD:
|
from_secret: ssh_password
|
||||||
# from_secret: vsphere_password
|
VSPHERE_PASSWORD:
|
||||||
# volumes:
|
from_secret: vsphere_password
|
||||||
# - name: output
|
volumes:
|
||||||
# path: /output
|
- name: output
|
||||||
# - name: scratch
|
path: /output
|
||||||
# path: /scratch
|
- name: scratch
|
||||||
|
path: /scratch
|
||||||
|
|
||||||
# - name: Kubernetes Upgrade Appliance
|
- name: Remove temporary resources
|
||||||
# depends_on:
|
image: bv11-cr01.bessems.eu/library/packer-extended
|
||||||
# - Install Ansible Galaxy collections
|
commands:
|
||||||
# image: bv11-cr01.bessems.eu/library/packer-extended
|
- |
|
||||||
# pull: alwaysquery(
|
pwsh -file scripts/Remove-Resources.ps1 \
|
||||||
# commands:
|
-VMName $DRONE_BUILD_NUMBER-${DRONE_COMMIT_SHA:0:10} \
|
||||||
# - |
|
-VSphereFQDN 'bv11-vc.bessems.lan' \
|
||||||
# sed -i -e "s/<<img-password>>/$${SSH_PASSWORD}/g" \
|
-VSphereUsername 'administrator@vsphere.local' \
|
||||||
# packer/preseed/UbuntuServer22.04/user-data
|
-VSpherePassword $${VSPHERE_PASSWORD}
|
||||||
# - |
|
environment:
|
||||||
# export K8S_VERSION=$(yq '.components.clusterapi.workload.version.k8s' < ./ansible/vars/metacluster.yml)
|
VSPHERE_PASSWORD:
|
||||||
# - |
|
from_secret: vsphere_password
|
||||||
# packer init -upgrade \
|
volumes:
|
||||||
# ./packer
|
- name: scratch
|
||||||
# - |
|
path: /scratch
|
||||||
# packer validate \
|
when:
|
||||||
# -only=vsphere-iso.upgrade \
|
status:
|
||||||
# -var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
- success
|
||||||
# -var docker_username=$${DOCKER_USERNAME} \
|
- failure
|
||||||
# -var docker_password=$${DOCKER_PASSWORD} \
|
|
||||||
# -var repo_username=$${REPO_USERNAME} \
|
|
||||||
# -var repo_password=$${REPO_PASSWORD} \
|
|
||||||
# -var ssh_password=$${SSH_PASSWORD} \
|
|
||||||
# -var vsphere_password=$${VSPHERE_PASSWORD} \
|
|
||||||
# -var k8s_version=$K8S_VERSION \
|
|
||||||
# ./packer
|
|
||||||
# - |
|
|
||||||
# packer build \
|
|
||||||
# -on-error=cleanup -timestamp-ui \
|
|
||||||
# -only=vsphere-iso.upgrade \
|
|
||||||
# -var vm_name=${DRONE_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}-$(openssl rand -hex 3) \
|
|
||||||
# -var docker_username=$${DOCKER_USERNAME} \
|
|
||||||
# -var docker_password=$${DOCKER_PASSWORD} \
|
|
||||||
# -var repo_username=$${REPO_USERNAME} \
|
|
||||||
# -var repo_password=$${REPO_PASSWORD} \
|
|
||||||
# -var ssh_password=$${SSH_PASSWORD} \
|
|
||||||
# -var vsphere_password=$${VSPHERE_PASSWORD} \
|
|
||||||
# -var k8s_version=$K8S_VERSION \
|
|
||||||
# ./packer
|
|
||||||
# environment:
|
|
||||||
# DOCKER_USERNAME:
|
|
||||||
# from_secret: docker_username
|
|
||||||
# DOCKER_PASSWORD:
|
|
||||||
# from_secret: docker_password
|
|
||||||
# # PACKER_LOG: 1
|
|
||||||
# REPO_USERNAME:
|
|
||||||
# from_secret: repo_username
|
|
||||||
# REPO_PASSWORD:
|
|
||||||
# from_secret: repo_password
|
|
||||||
# SSH_PASSWORD:
|
|
||||||
# from_secret: ssh_password
|
|
||||||
# VSPHERE_PASSWORD:
|
|
||||||
# from_secret: vsphere_password
|
|
||||||
# volumes:
|
|
||||||
# - name: output
|
|
||||||
# path: /output
|
|
||||||
# - name: scratch
|
|
||||||
# path: /scratch
|
|
||||||
|
|
||||||
# - name: Remove temporary resources
|
|
||||||
# depends_on:
|
|
||||||
# - Kubernetes Bootstrap Appliance
|
|
||||||
# - Kubernetes Upgrade Appliance
|
|
||||||
# image: bv11-cr01.bessems.eu/library/packer-extended
|
|
||||||
# commands:
|
|
||||||
# - |
|
|
||||||
# pwsh -file scripts/Remove-Resources.ps1 \
|
|
||||||
# -VMName $DRONE_BUILD_NUMBER-${DRONE_COMMIT_SHA:0:10} \
|
|
||||||
# -VSphereFQDN 'bv11-vc.bessems.lan' \
|
|
||||||
# -VSphereUsername 'administrator@vsphere.local' \
|
|
||||||
# -VSpherePassword $${VSPHERE_PASSWORD}
|
|
||||||
# environment:
|
|
||||||
# VSPHERE_PASSWORD:
|
|
||||||
# from_secret: vsphere_password
|
|
||||||
# volumes:
|
|
||||||
# - name: scratch
|
|
||||||
# path: /scratch
|
|
||||||
# when:
|
|
||||||
# status:
|
|
||||||
# - success
|
|
||||||
# - failure
|
|
||||||
|
@ -16,14 +16,16 @@
|
|||||||
{ 'components': (
|
{ 'components': (
|
||||||
metacluster_chartvalues |
|
metacluster_chartvalues |
|
||||||
combine({ 'clusterapi': components.clusterapi }) |
|
combine({ 'clusterapi': components.clusterapi }) |
|
||||||
combine({ 'kubevip' : components.kubevip }) )
|
combine({ 'kubevip' : components.kubevip }) ),
|
||||||
|
'appliance': {
|
||||||
|
'version': (applianceversion)
|
||||||
|
}
|
||||||
} | to_nice_yaml(indent=2, width=4096)
|
} | to_nice_yaml(indent=2, width=4096)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
- name: Aggregate chart_values into dict
|
- name: Aggregate chart_values into dict
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
workloadcluster_chartvalues: "{{ workloadcluster_chartvalues | default({}) | combine({ item.key: { 'chart_values': (item.value.chart_values | default('') | from_yaml) } }) }}"
|
workloadcluster_chartvalues: "{{ workloadcluster_chartvalues | default({}) | combine({ item.key: { 'chart_values': (item.value.chart_values | default('') | from_yaml) } }) }}"
|
||||||
# when: item.value.chart_values is defined
|
|
||||||
loop: "{{ query('ansible.builtin.dict', downstream.helm_charts) }}"
|
loop: "{{ query('ansible.builtin.dict', downstream.helm_charts) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.key }}"
|
label: "{{ item.key }}"
|
||||||
|
@ -1,14 +1,9 @@
|
|||||||
- block:
|
- block:
|
||||||
|
|
||||||
- name: Initialize tempfile
|
- name: Inject password into values file
|
||||||
ansible.builtin.tempfile:
|
|
||||||
state: file
|
|
||||||
register: values_file
|
|
||||||
|
|
||||||
- name: Write chart values w/ password to tempfile
|
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: "{{ values_file.path }}"
|
dest: "{{ stepconfig.path }}"
|
||||||
content: "{{ stepca_values.stdout | regex_replace('(ca_password|provisioner_password): ', '\\1: ' ~ (vapp['metacluster.password'] | b64encode)) }}"
|
content: "{{ lookup('ansible.builtin.file', stepconfig.path) | regex_replace('(ca_password|provisioner_password): ', '\\1: ' ~ (vapp['metacluster.password'] | b64encode)) }}"
|
||||||
no_log: true
|
no_log: true
|
||||||
|
|
||||||
- name: Install step-ca chart
|
- name: Install step-ca chart
|
||||||
@ -21,13 +16,7 @@
|
|||||||
wait: true
|
wait: true
|
||||||
kubeconfig: "{{ kubeconfig.path }}"
|
kubeconfig: "{{ kubeconfig.path }}"
|
||||||
values_files:
|
values_files:
|
||||||
- "{{ values_file.path }}"
|
- "{{ stepconfig.path }}"
|
||||||
|
|
||||||
- name: Cleanup tempfile
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ values_file.path }}"
|
|
||||||
state: absent
|
|
||||||
when: values_file.path is defined
|
|
||||||
|
|
||||||
- name: Retrieve configmap w/ root certificate
|
- name: Retrieve configmap w/ root certificate
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s_info:
|
||||||
|
@ -12,6 +12,15 @@
|
|||||||
- registry
|
- registry
|
||||||
- storage
|
- storage
|
||||||
|
|
||||||
|
- name: Create step-ca config dictionary
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
stepconfig: "{{ { 'path': ansible_env.HOME ~ '/.step/config/values.yaml' } }}"
|
||||||
|
|
||||||
|
- name: Create step-ca target folder
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ stepconfig.path | dirname }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
- name: Initialize tempfile
|
- name: Initialize tempfile
|
||||||
ansible.builtin.tempfile:
|
ansible.builtin.tempfile:
|
||||||
state: file
|
state: file
|
||||||
@ -36,8 +45,8 @@
|
|||||||
--address=:9000 \
|
--address=:9000 \
|
||||||
--provisioner=admin \
|
--provisioner=admin \
|
||||||
--acme \
|
--acme \
|
||||||
--password-file={{ stepca_password.path }}
|
--password-file={{ stepca_password.path }} | tee {{ stepconfig.path }}
|
||||||
register: stepca_values
|
creates: "{{ stepconfig.path }}"
|
||||||
|
|
||||||
- name: Cleanup tempfile
|
- name: Cleanup tempfile
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
@ -48,7 +57,7 @@
|
|||||||
- name: Store root CA certificate
|
- name: Store root CA certificate
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /usr/local/share/ca-certificates/root_ca.crt
|
dest: /usr/local/share/ca-certificates/root_ca.crt
|
||||||
content: "{{ (stepca_values.stdout | from_yaml).inject.certificates.root_ca }}"
|
content: "{{ (lookup('ansible.builtin.file', stepconfig.path) | from_yaml).inject.certificates.root_ca }}"
|
||||||
|
|
||||||
- name: Update certificate truststore
|
- name: Update certificate truststore
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
- block:
|
||||||
|
- name: Install json-server chart
|
||||||
|
kubernetes.core.helm:
|
||||||
|
name: json-server
|
||||||
|
chart_ref: /opt/metacluster/helm-charts/json-server
|
||||||
|
release_namespace: json-server
|
||||||
|
create_namespace: true
|
||||||
|
wait: false
|
||||||
|
kubeconfig: "{{ kubeconfig.path }}"
|
||||||
|
values: |
|
||||||
|
{{
|
||||||
|
components['json-server'].chart_values |
|
||||||
|
combine( {
|
||||||
|
'jsonServer': {
|
||||||
|
'seedData': {
|
||||||
|
'configInline': ( components['json-server'].chart_values.jsonServer.seedData.configInline | to_json )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} )
|
||||||
|
}}
|
||||||
|
|
||||||
|
- name: Ensure json-server API availability
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: https://version.{{ vapp['metacluster.fqdn'] }}/healthz
|
||||||
|
method: GET
|
||||||
|
# This mock REST API -ironically- does not support json encoded body argument
|
||||||
|
body_format: raw
|
||||||
|
register: api_readycheck
|
||||||
|
until:
|
||||||
|
- api_readycheck.json.status is defined
|
||||||
|
- api_readycheck.json.status == 'running'
|
||||||
|
retries: "{{ playbook.retries }}"
|
||||||
|
delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}"
|
||||||
|
|
||||||
|
module_defaults:
|
||||||
|
ansible.builtin.uri:
|
||||||
|
validate_certs: no
|
||||||
|
status_code: [200, 201]
|
@ -42,19 +42,30 @@
|
|||||||
retries: "{{ playbook.retries }}"
|
retries: "{{ playbook.retries }}"
|
||||||
delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}"
|
delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}"
|
||||||
|
|
||||||
- name: Install kubectl tab-completion
|
- name: Install tab-completion
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
cmd: kubectl completion bash | tee /etc/bash_completion.d/kubectl
|
cmd: |-
|
||||||
|
{{ item }} completion bash > /etc/bash_completion.d/{{ item }}
|
||||||
|
creates: /etc/bash_completion.d/{{ item }}
|
||||||
|
loop:
|
||||||
|
- kubectl
|
||||||
|
- helm
|
||||||
|
- step
|
||||||
|
|
||||||
- name: Initialize tempfile
|
- name: Create kubeconfig dictionary
|
||||||
ansible.builtin.tempfile:
|
ansible.builtin.set_fact:
|
||||||
state: file
|
kubeconfig: "{{ { 'path': ansible_env.HOME ~ '/.kube/config' } }}"
|
||||||
register: kubeconfig
|
|
||||||
|
- name: Create kubeconfig target folder
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ kubeconfig.path | dirname }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
- name: Retrieve kubeconfig
|
- name: Retrieve kubeconfig
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: kubectl config view --raw
|
cmd: kubectl config view --raw
|
||||||
register: kubectl_config
|
register: kubectl_config
|
||||||
|
no_log: true
|
||||||
|
|
||||||
- name: Store kubeconfig in tempfile
|
- name: Store kubeconfig in tempfile
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
- import_tasks: k3s.yml
|
- import_tasks: k3s.yml
|
||||||
- import_tasks: assets.yml
|
- import_tasks: assets.yml
|
||||||
- import_tasks: kube-vip.yml
|
- import_tasks: kube-vip.yml
|
||||||
|
- import_tasks: json-server.yml
|
||||||
- import_tasks: storage.yml
|
- import_tasks: storage.yml
|
||||||
- import_tasks: ingress.yml
|
- import_tasks: ingress.yml
|
||||||
- import_tasks: certauthority.yml
|
- import_tasks: certauthority.yml
|
||||||
|
@ -3,8 +3,8 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- cluster-template.yaml
|
- cluster-template.yaml
|
||||||
|
|
||||||
patchesStrategicMerge:
|
patches:
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
@ -32,7 +32,7 @@ patchesStrategicMerge:
|
|||||||
[Network]
|
[Network]
|
||||||
public-network = "${VSPHERE_NETWORK}"
|
public-network = "${VSPHERE_NETWORK}"
|
||||||
type: Opaque
|
type: Opaque
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
|
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
|
||||||
kind: KubeadmControlPlane
|
kind: KubeadmControlPlane
|
||||||
metadata:
|
metadata:
|
||||||
@ -42,7 +42,7 @@ patchesStrategicMerge:
|
|||||||
kubeadmConfigSpec:
|
kubeadmConfigSpec:
|
||||||
clusterConfiguration:
|
clusterConfiguration:
|
||||||
imageRepository: registry.{{ _template.network.fqdn }}/kubeadm
|
imageRepository: registry.{{ _template.network.fqdn }}/kubeadm
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
||||||
kind: KubeadmConfigTemplate
|
kind: KubeadmConfigTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -53,7 +53,7 @@ patchesStrategicMerge:
|
|||||||
spec:
|
spec:
|
||||||
clusterConfiguration:
|
clusterConfiguration:
|
||||||
imageRepository: registry.{{ _template.network.fqdn }}/kubeadm
|
imageRepository: registry.{{ _template.network.fqdn }}/kubeadm
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
||||||
kind: KubeadmConfigTemplate
|
kind: KubeadmConfigTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -86,7 +86,7 @@ patchesStrategicMerge:
|
|||||||
{{ _template.rootca | indent(width=14, first=False) | trim }}
|
{{ _template.rootca | indent(width=14, first=False) | trim }}
|
||||||
owner: root:root
|
owner: root:root
|
||||||
path: /usr/local/share/ca-certificates/root_ca.crt
|
path: /usr/local/share/ca-certificates/root_ca.crt
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -105,7 +105,7 @@ patchesStrategicMerge:
|
|||||||
nameservers:
|
nameservers:
|
||||||
- {{ _template.network.dnsserver }}
|
- {{ _template.network.dnsserver }}
|
||||||
networkName: '${VSPHERE_NETWORK}'
|
networkName: '${VSPHERE_NETWORK}'
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -125,132 +125,131 @@ patchesStrategicMerge:
|
|||||||
- {{ _template.network.dnsserver }}
|
- {{ _template.network.dnsserver }}
|
||||||
networkName: '${VSPHERE_NETWORK}'
|
networkName: '${VSPHERE_NETWORK}'
|
||||||
|
|
||||||
patchesJson6902:
|
- target:
|
||||||
- target:
|
group: controlplane.cluster.x-k8s.io
|
||||||
group: controlplane.cluster.x-k8s.io
|
version: v1beta1
|
||||||
version: v1beta1
|
kind: KubeadmControlPlane
|
||||||
kind: KubeadmControlPlane
|
name: .*
|
||||||
name: .*
|
patch: |-
|
||||||
patch: |-
|
- op: add
|
||||||
- op: add
|
path: /spec/kubeadmConfigSpec/files/-
|
||||||
path: /spec/kubeadmConfigSpec/files/-
|
value:
|
||||||
value:
|
content: |
|
||||||
content: |
|
[plugins."io.containerd.grpc.v1.cri".registry]
|
||||||
[plugins."io.containerd.grpc.v1.cri".registry]
|
config_path = "/etc/containerd/certs.d"
|
||||||
config_path = "/etc/containerd/certs.d"
|
append: true
|
||||||
append: true
|
path: /etc/containerd/config.toml
|
||||||
path: /etc/containerd/config.toml
|
|
||||||
{% for registry in _template.registries %}
|
{% for registry in _template.registries %}
|
||||||
- op: add
|
- op: add
|
||||||
path: /spec/kubeadmConfigSpec/files/-
|
path: /spec/kubeadmConfigSpec/files/-
|
||||||
value:
|
value:
|
||||||
content: |
|
content: |
|
||||||
server = "https://{{ registry }}"
|
server = "https://{{ registry }}"
|
||||||
|
|
||||||
[host."https://registry.{{ _template.network.fqdn }}/v2/library/{{ registry }}"]
|
[host."https://registry.{{ _template.network.fqdn }}/v2/library/{{ registry }}"]
|
||||||
capabilities = ["pull", "resolve"]
|
capabilities = ["pull", "resolve"]
|
||||||
override_path = true
|
override_path = true
|
||||||
owner: root:root
|
owner: root:root
|
||||||
path: /etc/containerd/certs.d/{{ registry }}/hosts.toml
|
path: /etc/containerd/certs.d/{{ registry }}/hosts.toml
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- op: add
|
- op: add
|
||||||
path: /spec/kubeadmConfigSpec/files/-
|
path: /spec/kubeadmConfigSpec/files/-
|
||||||
value:
|
value:
|
||||||
content: |
|
content: |
|
||||||
network: {config: disabled}
|
network: {config: disabled}
|
||||||
owner: root:root
|
owner: root:root
|
||||||
path: /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
|
path: /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
|
||||||
- op: add
|
- op: add
|
||||||
path: /spec/kubeadmConfigSpec/files/-
|
path: /spec/kubeadmConfigSpec/files/-
|
||||||
value:
|
value:
|
||||||
content: |
|
content: |
|
||||||
{{ _template.rootca | indent(width=12, first=False) | trim }}
|
{{ _template.rootca | indent(width=10, first=False) | trim }}
|
||||||
owner: root:root
|
owner: root:root
|
||||||
path: /usr/local/share/ca-certificates/root_ca.crt
|
path: /usr/local/share/ca-certificates/root_ca.crt
|
||||||
- target:
|
- target:
|
||||||
group: bootstrap.cluster.x-k8s.io
|
group: bootstrap.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: KubeadmConfigTemplate
|
kind: KubeadmConfigTemplate
|
||||||
name: .*
|
name: .*
|
||||||
patch: |-
|
patch: |-
|
||||||
{% for cmd in _template.runcmds %}
|
{% for cmd in _template.runcmds %}
|
||||||
- op: add
|
- op: add
|
||||||
path: /spec/template/spec/preKubeadmCommands/-
|
path: /spec/template/spec/preKubeadmCommands/-
|
||||||
value: {{ cmd }}
|
value: {{ cmd }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- target:
|
- target:
|
||||||
group: controlplane.cluster.x-k8s.io
|
group: controlplane.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: KubeadmControlPlane
|
kind: KubeadmControlPlane
|
||||||
name: .*
|
name: .*
|
||||||
patch: |-
|
patch: |-
|
||||||
{% for cmd in _template.runcmds %}
|
{% for cmd in _template.runcmds %}
|
||||||
- op: add
|
- op: add
|
||||||
path: /spec/kubeadmConfigSpec/preKubeadmCommands/-
|
path: /spec/kubeadmConfigSpec/preKubeadmCommands/-
|
||||||
value: {{ cmd }}
|
value: {{ cmd }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
- target:
|
- target:
|
||||||
group: infrastructure.cluster.x-k8s.io
|
group: infrastructure.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
name: \${CLUSTER_NAME}
|
name: \${CLUSTER_NAME}
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: ${CLUSTER_NAME}-master
|
value: ${CLUSTER_NAME}-master
|
||||||
- target:
|
- target:
|
||||||
group: controlplane.cluster.x-k8s.io
|
group: controlplane.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: KubeadmControlPlane
|
kind: KubeadmControlPlane
|
||||||
name: \${CLUSTER_NAME}
|
name: \${CLUSTER_NAME}
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: ${CLUSTER_NAME}-master
|
value: ${CLUSTER_NAME}-master
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/machineTemplate/infrastructureRef/name
|
path: /spec/machineTemplate/infrastructureRef/name
|
||||||
value: ${CLUSTER_NAME}-master
|
value: ${CLUSTER_NAME}-master
|
||||||
- target:
|
- target:
|
||||||
group: cluster.x-k8s.io
|
group: cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: Cluster
|
kind: Cluster
|
||||||
name: \${CLUSTER_NAME}
|
name: \${CLUSTER_NAME}
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/controlPlaneRef/name
|
path: /spec/controlPlaneRef/name
|
||||||
value: ${CLUSTER_NAME}-master
|
value: ${CLUSTER_NAME}-master
|
||||||
|
|
||||||
- target:
|
- target:
|
||||||
group: infrastructure.cluster.x-k8s.io
|
group: infrastructure.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
name: \${CLUSTER_NAME}-worker
|
name: \${CLUSTER_NAME}-worker
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/template/spec/numCPUs
|
path: /spec/template/spec/numCPUs
|
||||||
value: {{ _template.nodesize.cpu }}
|
value: {{ _template.nodesize.cpu }}
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/template/spec/memoryMiB
|
path: /spec/template/spec/memoryMiB
|
||||||
value: {{ _template.nodesize.memory }}
|
value: {{ _template.nodesize.memory }}
|
||||||
- target:
|
- target:
|
||||||
group: cluster.x-k8s.io
|
group: cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: MachineDeployment
|
kind: MachineDeployment
|
||||||
name: \${CLUSTER_NAME}-md-0
|
name: \${CLUSTER_NAME}-md-0
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: ${CLUSTER_NAME}-worker
|
value: ${CLUSTER_NAME}-worker
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/template/spec/bootstrap/configRef/name
|
path: /spec/template/spec/bootstrap/configRef/name
|
||||||
value: ${CLUSTER_NAME}-worker
|
value: ${CLUSTER_NAME}-worker
|
||||||
- target:
|
- target:
|
||||||
group: bootstrap.cluster.x-k8s.io
|
group: bootstrap.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: KubeadmConfigTemplate
|
kind: KubeadmConfigTemplate
|
||||||
name: \${CLUSTER_NAME}-md-0
|
name: \${CLUSTER_NAME}-md-0
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: ${CLUSTER_NAME}-worker
|
value: ${CLUSTER_NAME}-worker
|
||||||
|
@ -5,8 +5,8 @@ resources:
|
|||||||
- manifests/machinedeployment-{{ _template.cluster.name }}-worker.yaml
|
- manifests/machinedeployment-{{ _template.cluster.name }}-worker.yaml
|
||||||
- manifests/vspheremachinetemplate-{{ _template.cluster.name }}-worker.yaml
|
- manifests/vspheremachinetemplate-{{ _template.cluster.name }}-worker.yaml
|
||||||
|
|
||||||
patchesStrategicMerge:
|
patches:
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
|
||||||
kind: KubeadmConfigTemplate
|
kind: KubeadmConfigTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -31,7 +31,7 @@ patchesStrategicMerge:
|
|||||||
mounts:
|
mounts:
|
||||||
- - LABEL=blockstorage
|
- - LABEL=blockstorage
|
||||||
- /mnt/blockstorage
|
- /mnt/blockstorage
|
||||||
- |-
|
- patch: |-
|
||||||
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
metadata:
|
metadata:
|
||||||
@ -43,42 +43,41 @@ patchesStrategicMerge:
|
|||||||
additionalDisksGiB:
|
additionalDisksGiB:
|
||||||
- {{ _template.nodepool.additionaldisk }}
|
- {{ _template.nodepool.additionaldisk }}
|
||||||
|
|
||||||
patchesJson6902:
|
- target:
|
||||||
- target:
|
group: bootstrap.cluster.x-k8s.io
|
||||||
group: bootstrap.cluster.x-k8s.io
|
version: v1beta1
|
||||||
version: v1beta1
|
kind: KubeadmConfigTemplate
|
||||||
kind: KubeadmConfigTemplate
|
name: {{ _template.cluster.name }}-worker
|
||||||
name: {{ _template.cluster.name }}-worker
|
patch: |-
|
||||||
patch: |-
|
- op: replace
|
||||||
- op: replace
|
path: /metadata/name
|
||||||
path: /metadata/name
|
value: {{ _template.cluster.name }}-worker-storage
|
||||||
value: {{ _template.cluster.name }}-worker-storage
|
|
||||||
|
|
||||||
- target:
|
- target:
|
||||||
group: cluster.x-k8s.io
|
group: cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: MachineDeployment
|
kind: MachineDeployment
|
||||||
name: {{ _template.cluster.name }}-worker
|
name: {{ _template.cluster.name }}-worker
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: {{ _template.cluster.name }}-worker-storage
|
value: {{ _template.cluster.name }}-worker-storage
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/template/spec/bootstrap/configRef/name
|
path: /spec/template/spec/bootstrap/configRef/name
|
||||||
value: {{ _template.cluster.name }}-worker-storage
|
value: {{ _template.cluster.name }}-worker-storage
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/template/spec/infrastructureRef/name
|
path: /spec/template/spec/infrastructureRef/name
|
||||||
value: {{ _template.cluster.name }}-worker-storage
|
value: {{ _template.cluster.name }}-worker-storage
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /spec/replicas
|
path: /spec/replicas
|
||||||
value: {{ _template.nodepool.size }}
|
value: {{ _template.nodepool.size }}
|
||||||
|
|
||||||
- target:
|
- target:
|
||||||
group: infrastructure.cluster.x-k8s.io
|
group: infrastructure.cluster.x-k8s.io
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
kind: VSphereMachineTemplate
|
kind: VSphereMachineTemplate
|
||||||
name: {{ _template.cluster.name }}-worker
|
name: {{ _template.cluster.name }}-worker
|
||||||
patch: |-
|
patch: |-
|
||||||
- op: replace
|
- op: replace
|
||||||
path: /metadata/name
|
path: /metadata/name
|
||||||
value: {{ _template.cluster.name }}-worker-storage
|
value: {{ _template.cluster.name }}-worker-storage
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
- import_tasks: service.yml
|
- import_tasks: service.yml
|
||||||
- import_tasks: cron.yml
|
- import_tasks: cron.yml
|
||||||
|
|
||||||
- name: Cleanup tempfile
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ kubeconfig.path }}"
|
|
||||||
state: absent
|
|
||||||
when: kubeconfig.path is defined
|
|
||||||
|
|
||||||
# - name: Reboot host
|
# - name: Reboot host
|
||||||
# ansible.builtin.shell:
|
# ansible.builtin.shell:
|
||||||
# cmd: systemctl reboot
|
# cmd: systemctl reboot
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
platform:
|
platform:
|
||||||
|
|
||||||
k3s:
|
k3s:
|
||||||
version: v1.25.9+k3s1
|
version: v1.27.1+k3s1
|
||||||
|
|
||||||
packaged_components:
|
packaged_components:
|
||||||
- name: traefik
|
- name: traefik
|
||||||
@ -35,10 +35,6 @@ platform:
|
|||||||
url: https://argoproj.github.io/argo-helm
|
url: https://argoproj.github.io/argo-helm
|
||||||
- name: authentik
|
- name: authentik
|
||||||
url: https://charts.goauthentik.io
|
url: https://charts.goauthentik.io
|
||||||
# - name: codecentric
|
|
||||||
# url: https://codecentric.github.io/helm-charts
|
|
||||||
# - name: dex
|
|
||||||
# url: https://charts.dexidp.io
|
|
||||||
- name: gitea-charts
|
- name: gitea-charts
|
||||||
url: https://dl.gitea.io/charts/
|
url: https://dl.gitea.io/charts/
|
||||||
- name: harbor
|
- name: harbor
|
||||||
@ -51,6 +47,8 @@ platform:
|
|||||||
url: https://prometheus-community.github.io/helm-charts
|
url: https://prometheus-community.github.io/helm-charts
|
||||||
- name: smallstep
|
- name: smallstep
|
||||||
url: https://smallstep.github.io/helm-charts/
|
url: https://smallstep.github.io/helm-charts/
|
||||||
|
- name: spamasaurus
|
||||||
|
url: https://code.spamasaurus.com/api/packages/djpbessems/helm
|
||||||
|
|
||||||
components:
|
components:
|
||||||
|
|
||||||
@ -115,61 +113,13 @@ components:
|
|||||||
infrastructure_vsphere: v1.6.0
|
infrastructure_vsphere: v1.6.0
|
||||||
ipam_incluster: v0.1.0-alpha.2
|
ipam_incluster: v0.1.0-alpha.2
|
||||||
# Refer to `https://console.cloud.google.com/gcr/images/cloud-provider-vsphere/GLOBAL/cpi/release/manager` for available tags
|
# Refer to `https://console.cloud.google.com/gcr/images/cloud-provider-vsphere/GLOBAL/cpi/release/manager` for available tags
|
||||||
cpi_vsphere: v1.25.2
|
cpi_vsphere: v1.26.2
|
||||||
workload:
|
workload:
|
||||||
version:
|
version:
|
||||||
calico: v3.25.0
|
calico: v3.25.0
|
||||||
k8s: v1.25.9
|
k8s: v1.27.1
|
||||||
node_template:
|
node_template:
|
||||||
url: https://{{ repo_username }}:{{ repo_password }}@sn.itch.fyi/Repository/rel/ubuntu-2204-kube-v1.25.9.ova
|
url: https://{{ repo_username }}:{{ repo_password }}@sn.itch.fyi/Repository/rel/ubuntu-2204-kube-v1.27.1.ova
|
||||||
|
|
||||||
# dex:
|
|
||||||
# helm:
|
|
||||||
# version: 0.13.0 # (= Dex 2.35.3)
|
|
||||||
# chart: dex/dex
|
|
||||||
# parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | awk '!/ /'
|
|
||||||
# chart_values: !unsafe |
|
|
||||||
# config:
|
|
||||||
# connectors:
|
|
||||||
# - type: ldap
|
|
||||||
# id: ldap
|
|
||||||
# name: "LDAP"
|
|
||||||
# config:
|
|
||||||
# host: "{{ vapp['ldap.fqdn'] }}:636"
|
|
||||||
# insecureNoSSL: false
|
|
||||||
# insecureSkipVerify: true
|
|
||||||
# bindDN: "{{ vapp['ldap.dn'] }}"
|
|
||||||
# bindPW: "{{ vapp['ldap.password'] }}"
|
|
||||||
|
|
||||||
# usernamePrompt: "Username"
|
|
||||||
# userSearch:
|
|
||||||
# baseDN: OU=Administrators,OU=Useraccounts,DC=bessems,DC=eu
|
|
||||||
# filter: "(objectClass=person)"
|
|
||||||
# username: userPrincipalName
|
|
||||||
# idAttr: DN
|
|
||||||
# emailAttr: userPrincipalName
|
|
||||||
# nameAttr: cn
|
|
||||||
|
|
||||||
# groupSearch:
|
|
||||||
# baseDN: OU=Roles,OU=Groups,DC=bessems,DC=eu
|
|
||||||
# filter: "(objectClass=group)"
|
|
||||||
# userMatchers:
|
|
||||||
# - userAttr: DN
|
|
||||||
# groupAttr: member
|
|
||||||
# nameAttr: cn
|
|
||||||
# enablePasswordDB: true
|
|
||||||
# issuer: https://oidc.{{ vapp['metacluster.fqdn'] }}
|
|
||||||
# storage:
|
|
||||||
# type: kubernetes
|
|
||||||
# config:
|
|
||||||
# inCluster: true
|
|
||||||
# ingress:
|
|
||||||
# enabled: true
|
|
||||||
# hosts:
|
|
||||||
# - host: oidc.{{ vapp['metacluster.fqdn'] }}
|
|
||||||
# paths:
|
|
||||||
# - path: /
|
|
||||||
# pathType: Prefix
|
|
||||||
|
|
||||||
gitea:
|
gitea:
|
||||||
helm:
|
helm:
|
||||||
@ -225,37 +175,35 @@ components:
|
|||||||
registry:
|
registry:
|
||||||
size: 25Gi
|
size: 25Gi
|
||||||
|
|
||||||
# keycloakx:
|
json-server:
|
||||||
# helm:
|
helm:
|
||||||
# version: 2.1.1 # (= Keycloak 20.0.3)
|
version: v0.8.1
|
||||||
# chart: codecentric/keycloakx
|
chart: spamasaurus/json-server
|
||||||
# parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | awk '!/ /'
|
parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | awk '!/ /'
|
||||||
# chart_values: !unsafe |
|
chart_values: !unsafe |
|
||||||
# command:
|
ingress:
|
||||||
# - "/opt/keycloak/bin/kc.sh"
|
enabled: true
|
||||||
# - "start"
|
hosts:
|
||||||
# - "--http-enabled=true"
|
- host: version.{{ vapp['metacluster.fqdn'] }}
|
||||||
# - "--http-port=8080"
|
paths:
|
||||||
# - "--hostname-strict=false"
|
- path: /
|
||||||
# - "--hostname-strict-https=false"
|
pathType: Prefix
|
||||||
# extraEnv: |
|
jsonServer:
|
||||||
# - name: KEYCLOAK_ADMIN
|
seedData:
|
||||||
# value: admin
|
configInline: |
|
||||||
# - name: KEYCLOAK_ADMIN_PASSWORD
|
{
|
||||||
# value: {{ vapp['metacluster.password'] }}
|
"appliance": { "version": "{{ appliance.version }}" },
|
||||||
# - name: KC_PROXY
|
"components": [
|
||||||
# value: "passthrough"
|
{ "id": 0,
|
||||||
# - name: JAVA_OPTS_APPEND
|
"name": "cluster-api",
|
||||||
# value: >-
|
"management": { "foo": "bar" },
|
||||||
# -Djgroups.dns.query={% raw %}{{ include "keycloak.fullname" . }}{% endraw %}-headless
|
"workload": { "foo": "bar" }
|
||||||
# ingress:
|
}
|
||||||
# enabled: true
|
],
|
||||||
# rules:
|
"healthz": { "status": "running" }
|
||||||
# - host: keycloak.{{ vapp['metacluster.fqdn'] }}
|
}
|
||||||
# paths:
|
sidecar:
|
||||||
# - path: /
|
targetUrl: version.{{ vapp['metacluster.fqdn'] }}
|
||||||
# pathType: Prefix
|
|
||||||
# tls: []
|
|
||||||
|
|
||||||
kube-prometheus-stack:
|
kube-prometheus-stack:
|
||||||
helm:
|
helm:
|
||||||
|
@ -28,6 +28,7 @@ build {
|
|||||||
|
|
||||||
extra_arguments = [
|
extra_arguments = [
|
||||||
"--extra-vars", "appliancetype=${source.name}",
|
"--extra-vars", "appliancetype=${source.name}",
|
||||||
|
"--extra-vars", "applianceversion=${var.appliance_version}",
|
||||||
"--extra-vars", "ansible_ssh_pass=${var.ssh_password}",
|
"--extra-vars", "ansible_ssh_pass=${var.ssh_password}",
|
||||||
"--extra-vars", "docker_username=${var.docker_username}",
|
"--extra-vars", "docker_username=${var.docker_username}",
|
||||||
"--extra-vars", "docker_password=${var.docker_password}",
|
"--extra-vars", "docker_password=${var.docker_password}",
|
||||||
@ -45,7 +46,7 @@ build {
|
|||||||
" -ManifestFileName '/scratch/bld_${var.vm_name}_${source.name}.mf'",
|
" -ManifestFileName '/scratch/bld_${var.vm_name}_${source.name}.mf'",
|
||||||
"ovftool --acceptAllEulas --allowExtraConfig --overwrite \\",
|
"ovftool --acceptAllEulas --allowExtraConfig --overwrite \\",
|
||||||
" '/scratch/bld_${var.vm_name}_${source.name}.ovf' \\",
|
" '/scratch/bld_${var.vm_name}_${source.name}.ovf' \\",
|
||||||
" /output/airgapped-k8s-${var.k8s_version}.${source.name}.ova"
|
" /output/airgapped-k8s-${var.appliance_version}+${var.k8s_version}-${source.name}.ova"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,4 +34,5 @@ variable "docker_password" {
|
|||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "appliance_version" {}
|
||||||
variable "k8s_version" {}
|
variable "k8s_version" {}
|
||||||
|
Reference in New Issue
Block a user