Skip to content

Commit

Permalink
Add separate cred secrets for azure/gcp (#166)
Browse files Browse the repository at this point in the history
  • Loading branch information
sseago authored and jmontleon committed Dec 2, 2019
1 parent bae3f19 commit ef57558
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 4 deletions.
2 changes: 2 additions & 0 deletions roles/migrationcontroller/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ restic_pv_host_path: /var/lib/kubelet/pods
restic_timeout: 1h
ui_state: absent
velero_aws_secret_name: cloud-credentials
velero_gcp_secret_name: gcp-cloud-credentials
velero_azure_secret_name: azure-cloud-credentials
velero_debug: false
velero_image: "{{ registry }}/{{ project }}/{{ velero_repo }}"
velero_repo: "{{ lookup( 'env', 'VELERO_REPO') }}"
Expand Down
42 changes: 42 additions & 0 deletions roles/migrationcontroller/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,22 @@
namespace: "{{ mig_namespace }}"
register: secret_status

- name: Check if gcp-cloud-credentials secret exists already so we don't update it
k8s_facts:
api_version: v1
kind: Secret
name: "{{ velero_gcp_secret_name }}"
namespace: "{{ mig_namespace }}"
register: gcp_secret_status

- name: Check if azure-cloud-credentials secret exists already so we don't update it
k8s_facts:
api_version: v1
kind: Secret
name: "{{ velero_azure_secret_name }}"
namespace: "{{ mig_namespace }}"
register: azure_secret_status

- name: "Create empty velero S3 secret"
k8s:
state: "{{ velero_state }}"
Expand All @@ -105,6 +121,32 @@
cloud: ""
when: (secret_status.resources|length) == 0

- name: "Create empty velero gcp secret"
k8s:
state: "{{ velero_state }}"
definition:
apiVersion: v1
kind: Secret
metadata:
name: "{{ velero_gcp_secret_name }}"
namespace: "{{ mig_namespace }}"
data:
cloud: ""
when: (gcp_secret_status.resources|length) == 0

- name: "Create empty velero azure secret"
k8s:
state: "{{ velero_state }}"
definition:
apiVersion: v1
kind: Secret
metadata:
name: "{{ velero_azure_secret_name }}"
namespace: "{{ mig_namespace }}"
data:
cloud: ""
when: (azure_secret_status.resources|length) == 0

- name: "Set up velero supporting resources (CRDS, SA, SCC) when not managed by OLM"
k8s:
state: "{{ velero_state }}"
Expand Down
28 changes: 24 additions & 4 deletions roles/migrationcontroller/templates/velero.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ spec:
volumeMounts:
- name: {{ velero_aws_secret_name }}
mountPath: /credentials
- name: {{ velero_gcp_secret_name }}
mountPath: /credentials-gcp
- name: {{ velero_azure_secret_name }}
mountPath: /credentials-azure
- name: plugins
mountPath: /plugins
- name: scratch
Expand All @@ -56,9 +60,9 @@ spec:
- name: AWS_SHARED_CREDENTIALS_FILE
value: /credentials/cloud
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /credentials/cloud
value: /credentials-gcp/cloud
- name: AZURE_CREDENTIALS_FILE
value: /credentials/cloud
value: /credentials-azure/cloud
- name: VELERO_NAMESPACE
value: {{ mig_namespace }}
- name: VELERO_SCRATCH_DIR
Expand All @@ -67,6 +71,12 @@ spec:
- name: {{ velero_aws_secret_name }}
secret:
secretName: {{ velero_aws_secret_name }}
- name: {{ velero_gcp_secret_name }}
secret:
secretName: {{ velero_gcp_secret_name }}
- name: {{ velero_azure_secret_name }}
secret:
secretName: {{ velero_azure_secret_name }}
- name: plugins
emptyDir: {}
- name: scratch
Expand Down Expand Up @@ -103,6 +113,12 @@ spec:
- name: {{ velero_aws_secret_name }}
secret:
secretName: {{ velero_aws_secret_name }}
- name: {{ velero_gcp_secret_name }}
secret:
secretName: {{ velero_gcp_secret_name }}
- name: {{ velero_azure_secret_name }}
secret:
secretName: {{ velero_azure_secret_name }}
- name: host-pods
hostPath:
path: {{ restic_pv_host_path }}
Expand All @@ -122,6 +138,10 @@ spec:
volumeMounts:
- name: {{ velero_aws_secret_name }}
mountPath: /credentials
- name: {{ velero_gcp_secret_name }}
mountPath: /credentials-gcp
- name: {{ velero_azure_secret_name }}
mountPath: /credentials-azure
- name: host-pods
mountPath: /host_pods
mountPropagation: HostToContainer
Expand All @@ -139,9 +159,9 @@ spec:
- name: AWS_SHARED_CREDENTIALS_FILE
value: /credentials/cloud
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /credentials/cloud
value: /credentials-gcp/cloud
- name: AZURE_CREDENTIALS_FILE
value: /credentials/cloud
value: /credentials-azure/cloud
- name: VELERO_SCRATCH_DIR
value: /scratch

0 comments on commit ef57558

Please sign in to comment.