diff --git a/playbook/jobs/init_chartmuseum b/playbook/jobs/init_chartmuseum new file mode 100644 index 00000000..e51e73d9 --- /dev/null +++ b/playbook/jobs/init_chartmuseum @@ -0,0 +1,19 @@ +- name: setup harbor + hosts: all + user: root + become: yes + gather_facts: yes + tasks: + - include_role: + name: chartmuseum + vars: + group: master + namespace: harbor + domain: onwalk.net + auto_issuance: true + update_secret: true + storage_type: oss + tls: + - secret_name: chartmuseum-tls + keyfile: /etc/ssl/onwalk.net.key + certfile: /etc/ssl/onwalk.net.pem diff --git a/playbook/roles/chartmuseum/files/setup.sh b/playbook/roles/chartmuseum/files/setup.sh new file mode 100644 index 00000000..fdc40cfb --- /dev/null +++ b/playbook/roles/chartmuseum/files/setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +domain=$1 +namespace=$2 +auth_password=$3 +secret_name=$4 +storage_type=$5 + +cat > vaules.yaml << EOF +env: + open: + STORAGE: local + DISABLE_API: false + AUTH_ANONYMOUS_GET: true + secret: + BASIC_AUTH_USER: admin + BASIC_AUTH_PASS: '$auth_password' +ingress: + enabled: true + hosts: + - name: charts.$domain + path: / + tls: true + tlsSecret: $secret_name + ingressClassName: nginx +persistence: + enabled: true + accessMode: ReadWriteOnce + size: 8Gi + path: /storage + storageClass: "local-path" +EOF + +export KUBECONFIG=/etc/rancher/k3s/k3s.yaml +helm repo add chartmuseum https://chartmuseum.github.io/charts +helm repo update +helm upgrade --install chartmuseum chartmuseum/chartmuseum -f values.yaml -n $namespace diff --git a/playbook/roles/chartmuseum/meta/main.yml b/playbook/roles/chartmuseum/meta/main.yml new file mode 100644 index 00000000..6e0c32a9 --- /dev/null +++ b/playbook/roles/chartmuseum/meta/main.yml @@ -0,0 +1,5 @@ +dependencies: + - role: redis + - role: postgresql + - role: cert-manager + - role: secret-manger diff --git a/playbook/roles/chartmuseum/tasks/main.yml b/playbook/roles/chartmuseum/tasks/main.yml new file mode 100755 index 00000000..312d405e --- /dev/null +++ b/playbook/roles/chartmuseum/tasks/main.yml @@ -0,0 +1,4 @@ +- name: Setup Chartmuseum Server + script: files/setup.sh {{ domain }} {{ namespace }} {{ auth_password }} {{ item.secret_name }} + loop: "{{ tls }}" + when: inventory_hostname in groups[group]