Last active
November 14, 2023 15:43
-
-
Save tanwald/df04a9dfff1fa777aec821ad74907193 to your computer and use it in GitHub Desktop.
tekton-dbaas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: Task | |
metadata: | |
name: dbaas-create | |
labels: | |
app.kubernetes.io/component: tekton | |
spec: | |
description: 'Task to create an Exoscale DBAAS.' | |
workspaces: | |
- name: exoscale-config | |
description: 'Workspace containing Exoscale-CLI config.' | |
params: | |
- name: DATABASE | |
description: 'Database to create.' | |
- name: DATABASE_NAME | |
description: 'Name of the database to create.' | |
stepTemplate: | |
env: | |
- name: EXOSCALE_CONFIG | |
value: $(workspaces.exoscale-config.path)/exoscale.toml | |
steps: | |
- name: create | |
image: docker.io/exoscale/cli:latest | |
args: | |
- dbaas | |
- create | |
- $(params.DATABASE) | |
- startup-4 | |
- $(params.DATABASE_NAME) | |
- --$(params.DATABASE)-ip-filter=0.0.0.0/0 | |
- --termination-protection=false | |
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: Pipeline | |
metadata: | |
name: dbaas-create | |
spec: | |
description: 'Pipeline to create an Exoscale DBAAS.' | |
params: | |
- name: DATABASE | |
description: 'Database to create.' | |
- name: DATABASE_NAME | |
description: 'Name of the database to create.' | |
workspaces: | |
- name: exoscale-config | |
tasks: | |
- name: dbaas-create | |
taskRef: | |
name: dbaas-create | |
kind: Task | |
params: | |
- name: DATABASE | |
value: $(params.DATABASE) | |
- name: DATABASE_NAME | |
value: $(params.DATABASE_NAME) | |
workspaces: | |
- name: exoscale-config | |
workspace: exoscale-config | |
- name: dbaas-wait | |
taskRef: | |
name: dbaas-wait | |
kind: Task | |
runAfter: | |
- dbaas-create | |
params: | |
- name: DATABASE | |
value: $(params.DATABASE) | |
- name: DATABASE_NAME | |
value: $(params.DATABASE_NAME) | |
workspaces: | |
- name: exoscale-config | |
workspace: exoscale-config | |
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: PipelineRun | |
metadata: | |
generateName: dbaas-create- | |
spec: | |
params: | |
- name: DATABASE | |
value: 'pg' | |
- name: DATABASE_NAME | |
value: 'pg-test' | |
pipelineRef: | |
name: dbaas-create | |
serviceAccountName: pipelines | |
workspaces: | |
- name: exoscale-config | |
secret: | |
secretName: exoscale-config |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: Task | |
metadata: | |
name: dbaas-fork | |
labels: | |
app.kubernetes.io/component: tekton | |
spec: | |
description: 'Task to fork an Exoscale DBAAS.' | |
workspaces: | |
- name: exoscale-config | |
description: 'Workspace containing Exoscale-CLI config.' | |
params: | |
- name: DATABASE | |
description: 'Database to create.' | |
- name: DATABASE_NAME | |
description: 'Name of the database to create.' | |
- name: DATABASE_FROM | |
description: 'Name of the database to fork from.' | |
stepTemplate: | |
env: | |
- name: EXOSCALE_CONFIG | |
value: $(workspaces.exoscale-config.path)/exoscale.toml | |
steps: | |
- name: fork | |
image: docker.io/exoscale/cli:latest | |
args: | |
- dbaas | |
- create | |
- $(params.DATABASE) | |
- startup-4 | |
- $(params.DATABASE_NAME) | |
- --$(params.DATABASE)-fork-from=$(params.DATABASE_FROM) | |
- --$(params.DATABASE)-ip-filter=0.0.0.0/0 | |
- --termination-protection=false | |
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: Pipeline | |
metadata: | |
name: dbaas-fork | |
spec: | |
description: 'Pipeline to fork an Exoscale DBAAS.' | |
params: | |
- name: DATABASE | |
description: 'Database to create.' | |
- name: DATABASE_NAME | |
description: 'Name of the database to create.' | |
- name: DATABASE_FROM | |
description: 'Name of the database to fork from.' | |
workspaces: | |
- name: exoscale-config | |
tasks: | |
- name: dbaas-fork | |
taskRef: | |
name: dbaas-fork | |
kind: Task | |
params: | |
- name: DATABASE | |
value: $(params.DATABASE) | |
- name: DATABASE_NAME | |
value: $(params.DATABASE_NAME) | |
- name: DATABASE_FROM | |
value: $(params.DATABASE_FROM) | |
workspaces: | |
- name: exoscale-config | |
workspace: exoscale-config | |
- name: dbaas-wait | |
taskRef: | |
name: dbaas-wait | |
kind: Task | |
runAfter: | |
- dbaas-fork | |
params: | |
- name: DATABASE | |
value: $(params.DATABASE) | |
- name: DATABASE_NAME | |
value: $(params.DATABASE_NAME) | |
workspaces: | |
- name: exoscale-config | |
workspace: exoscale-config | |
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: PipelineRun | |
metadata: | |
generateName: dbaas-fork- | |
spec: | |
params: | |
- name: DATABASE | |
value: 'pg' | |
- name: DATABASE_NAME | |
value: 'pg-test-fork' | |
- name: DATABASE_FROM | |
value: 'pg-test' | |
pipelineRef: | |
name: dbaas-fork | |
serviceAccountName: pipelines | |
workspaces: | |
- name: exoscale-config | |
secret: | |
secretName: exoscale-config |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
apiVersion: tekton.dev/v1beta1 | |
kind: Task | |
metadata: | |
name: dbaas-wait | |
labels: | |
app.kubernetes.io/component: tekton | |
spec: | |
description: 'Task that waits for an Exoscale DBAAS to become ready.' | |
workspaces: | |
- name: exoscale-config | |
description: 'Workspace containing Exoscale-CLI config.' | |
params: | |
- name: DATABASE | |
description: 'Database to wait for.' | |
- name: DATABASE_NAME | |
description: 'Name of the database to wait for.' | |
stepTemplate: | |
env: | |
- name: EXOSCALE_CONFIG | |
value: $(workspaces.exoscale-config.path)/exoscale.toml | |
steps: | |
- name: wait | |
image: docker.io/exoscale/cli:latest | |
args: | |
- $(params.DATABASE_NAME) | |
script: | | |
until [[ "$(/exo dbaas show $1 --output-template '{{.State}}')" == "running" ]]; do | |
echo "Waiting for $1 to become ready..." | |
sleep 3s | |
done | |
/exo dbaas show $1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment