add a prefix for the name of a logical backup job (#1287)
* add a prefix for the name of a logical backup job Co-authored-by: Sergey Dudoladov <sergey.dudoladov@zalando.de>
This commit is contained in:
		
							parent
							
								
									a21504555b
								
							
						
					
					
						commit
						168b679506
					
				|  | @ -242,17 +242,18 @@ configLogicalBackup: | ||||||
|   logical_backup_docker_image: "registry.opensource.zalan.do/acid/logical-backup:v.1.6.0" |   logical_backup_docker_image: "registry.opensource.zalan.do/acid/logical-backup:v.1.6.0" | ||||||
|   # path of google cloud service account json file |   # path of google cloud service account json file | ||||||
|   # logical_backup_google_application_credentials: "" |   # logical_backup_google_application_credentials: "" | ||||||
| 
 |   # prefix for the backup job name | ||||||
|  |   logical_backup_job_prefix: "logical-backup-" | ||||||
|   # storage provider - either "s3" or "gcs" |   # storage provider - either "s3" or "gcs" | ||||||
|   logical_backup_provider: "s3" |   logical_backup_provider: "s3" | ||||||
|   # S3 Access Key ID |   # S3 Access Key ID | ||||||
|   logical_backup_s3_access_key_id: "" |   logical_backup_s3_access_key_id: "" | ||||||
|   # S3 bucket to store backup results |   # S3 bucket to store backup results | ||||||
|   logical_backup_s3_bucket: "my-bucket-url" |   logical_backup_s3_bucket: "my-bucket-url" | ||||||
|   # S3 region of bucket |  | ||||||
|   logical_backup_s3_region: "" |  | ||||||
|   # S3 endpoint url when not using AWS |   # S3 endpoint url when not using AWS | ||||||
|   logical_backup_s3_endpoint: "" |   logical_backup_s3_endpoint: "" | ||||||
|  |   # S3 region of bucket | ||||||
|  |   logical_backup_s3_region: "" | ||||||
|   # S3 Secret Access Key |   # S3 Secret Access Key | ||||||
|   logical_backup_s3_secret_access_key: "" |   logical_backup_s3_secret_access_key: "" | ||||||
|   # S3 server side encryption |   # S3 server side encryption | ||||||
|  | @ -260,6 +261,7 @@ configLogicalBackup: | ||||||
|   # backup schedule in the cron format |   # backup schedule in the cron format | ||||||
|   logical_backup_schedule: "30 00 * * *" |   logical_backup_schedule: "30 00 * * *" | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| # automate creation of human users with teams API service | # automate creation of human users with teams API service | ||||||
| configTeamsApi: | configTeamsApi: | ||||||
|   # team_admin_role will have the rights to grant roles coming from PG manifests |   # team_admin_role will have the rights to grant roles coming from PG manifests | ||||||
|  |  | ||||||
|  | @ -551,11 +551,6 @@ These parameters configure a K8s cron job managed by the operator to produce | ||||||
| Postgres logical backups. In the CRD-based configuration those parameters are | Postgres logical backups. In the CRD-based configuration those parameters are | ||||||
| grouped under the `logical_backup` key. | grouped under the `logical_backup` key. | ||||||
| 
 | 
 | ||||||
| * **logical_backup_schedule** |  | ||||||
|   Backup schedule in the cron format. Please take the |  | ||||||
|   [reference schedule format](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule) |  | ||||||
|   into account. Default: "30 00 \* \* \*" |  | ||||||
| 
 |  | ||||||
| * **logical_backup_docker_image** | * **logical_backup_docker_image** | ||||||
|   An image for pods of the logical backup job. The [example image](../../docker/logical-backup/Dockerfile) |   An image for pods of the logical backup job. The [example image](../../docker/logical-backup/Dockerfile) | ||||||
|   runs `pg_dumpall` on a replica if possible and uploads compressed results to |   runs `pg_dumpall` on a replica if possible and uploads compressed results to | ||||||
|  | @ -563,32 +558,40 @@ grouped under the `logical_backup` key. | ||||||
|   The default image is the same image built with the Zalando-internal CI |   The default image is the same image built with the Zalando-internal CI | ||||||
|   pipeline. Default: "registry.opensource.zalan.do/acid/logical-backup" |   pipeline. Default: "registry.opensource.zalan.do/acid/logical-backup" | ||||||
| 
 | 
 | ||||||
|  | * **logical_backup_google_application_credentials** | ||||||
|  |   Specifies the path of the google cloud service account json file. Default is empty. | ||||||
|  | 
 | ||||||
|  | * **logical_backup_job_prefix** | ||||||
|  |   The prefix to be prepended to the name of a k8s CronJob running the backups. Beware the prefix counts towards the name length restrictions imposed by k8s. Empty string is a legitimate value. Operator does not do the actual renaming: It simply creates the job with the new prefix. You will have to delete the old cron job manually. Default: "logical-backup-". | ||||||
|  | 
 | ||||||
| * **logical_backup_provider** | * **logical_backup_provider** | ||||||
|   Specifies the storage provider to which the backup should be uploaded (`s3` or `gcs`). |   Specifies the storage provider to which the backup should be uploaded (`s3` or `gcs`). | ||||||
|   Default: "s3" |   Default: "s3" | ||||||
| 
 | 
 | ||||||
|  | * **logical_backup_s3_access_key_id** | ||||||
|  |   When set, value will be in AWS_ACCESS_KEY_ID env variable. The Default is empty. | ||||||
|  | 
 | ||||||
| * **logical_backup_s3_bucket** | * **logical_backup_s3_bucket** | ||||||
|   S3 bucket to store backup results. The bucket has to be present and |   S3 bucket to store backup results. The bucket has to be present and | ||||||
|   accessible by Postgres pods. Default: empty. |   accessible by Postgres pods. Default: empty. | ||||||
| 
 | 
 | ||||||
|  | * **logical_backup_s3_endpoint** | ||||||
|  |   When using non-AWS S3 storage, endpoint can be set as a ENV variable. The default is empty. | ||||||
|  | 
 | ||||||
| * **logical_backup_s3_region** | * **logical_backup_s3_region** | ||||||
|   Specifies the region of the bucket which is required with some non-AWS S3 storage services. The default is empty. |   Specifies the region of the bucket which is required with some non-AWS S3 storage services. The default is empty. | ||||||
| 
 | 
 | ||||||
| * **logical_backup_s3_endpoint** | * **logical_backup_s3_secret_access_key** | ||||||
|   When using non-AWS S3 storage, endpoint can be set as a ENV variable. The default is empty. |   When set, value will be in AWS_SECRET_ACCESS_KEY env variable. The Default is empty. | ||||||
| 
 | 
 | ||||||
| * **logical_backup_s3_sse** | * **logical_backup_s3_sse** | ||||||
|   Specify server side encryption that S3 storage is using. If empty string |   Specify server side encryption that S3 storage is using. If empty string | ||||||
|   is specified, no argument will be passed to `aws s3` command. Default: "AES256". |   is specified, no argument will be passed to `aws s3` command. Default: "AES256". | ||||||
| 
 | 
 | ||||||
| * **logical_backup_s3_access_key_id** | * **logical_backup_schedule** | ||||||
|   When set, value will be in AWS_ACCESS_KEY_ID env variable. The Default is empty. |   Backup schedule in the cron format. Please take the | ||||||
| 
 |   [reference schedule format](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule) | ||||||
| * **logical_backup_s3_secret_access_key** |   into account. Default: "30 00 \* \* \*" | ||||||
|   When set, value will be in AWS_SECRET_ACCESS_KEY env variable. The Default is empty. |  | ||||||
| 
 |  | ||||||
| * **logical_backup_google_application_credentials** |  | ||||||
|   Specifies the path of the google cloud service account json file. Default is empty. |  | ||||||
| 
 | 
 | ||||||
| ## Debugging the operator | ## Debugging the operator | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -317,6 +317,8 @@ spec: | ||||||
|                     type: string |                     type: string | ||||||
|                   logical_backup_google_application_credentials: |                   logical_backup_google_application_credentials: | ||||||
|                     type: string |                     type: string | ||||||
|  |                   logical_backup_job_prefix: | ||||||
|  |                     type: string | ||||||
|                   logical_backup_provider: |                   logical_backup_provider: | ||||||
|                     type: string |                     type: string | ||||||
|                   logical_backup_s3_access_key_id: |                   logical_backup_s3_access_key_id: | ||||||
|  |  | ||||||
|  | @ -117,6 +117,7 @@ configuration: | ||||||
|   logical_backup: |   logical_backup: | ||||||
|     logical_backup_docker_image: "registry.opensource.zalan.do/acid/logical-backup:v.1.6.0" |     logical_backup_docker_image: "registry.opensource.zalan.do/acid/logical-backup:v.1.6.0" | ||||||
|     # logical_backup_google_application_credentials: "" |     # logical_backup_google_application_credentials: "" | ||||||
|  |     logical_backup_job_prefix: "logical-backup-" | ||||||
|     logical_backup_provider: "s3" |     logical_backup_provider: "s3" | ||||||
|     # logical_backup_s3_access_key_id: "" |     # logical_backup_s3_access_key_id: "" | ||||||
|     logical_backup_s3_bucket: "my-bucket-url" |     logical_backup_s3_bucket: "my-bucket-url" | ||||||
|  |  | ||||||
|  | @ -196,6 +196,7 @@ type OperatorLogicalBackupConfiguration struct { | ||||||
| 	S3SecretAccessKey            string `json:"logical_backup_s3_secret_access_key,omitempty"` | 	S3SecretAccessKey            string `json:"logical_backup_s3_secret_access_key,omitempty"` | ||||||
| 	S3SSE                        string `json:"logical_backup_s3_sse,omitempty"` | 	S3SSE                        string `json:"logical_backup_s3_sse,omitempty"` | ||||||
| 	GoogleApplicationCredentials string `json:"logical_backup_google_application_credentials,omitempty"` | 	GoogleApplicationCredentials string `json:"logical_backup_google_application_credentials,omitempty"` | ||||||
|  | 	JobPrefix                    string `json:"logical_backup_job_prefix,omitempty"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // OperatorConfigurationData defines the operation config
 | // OperatorConfigurationData defines the operation config
 | ||||||
|  |  | ||||||
|  | @ -2079,7 +2079,7 @@ func (c *Cluster) generateLogicalBackupPodEnvVars() []v1.EnvVar { | ||||||
| 
 | 
 | ||||||
| // getLogicalBackupJobName returns the name; the job itself may not exists
 | // getLogicalBackupJobName returns the name; the job itself may not exists
 | ||||||
| func (c *Cluster) getLogicalBackupJobName() (jobName string) { | func (c *Cluster) getLogicalBackupJobName() (jobName string) { | ||||||
| 	return "logical-backup-" + c.clusterName().Name | 	return c.OpConfig.LogicalBackupJobPrefix + c.clusterName().Name | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Return an array of ownerReferences to make an arbitraty object dependent on
 | // Return an array of ownerReferences to make an arbitraty object dependent on
 | ||||||
|  |  | ||||||
|  | @ -154,6 +154,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur | ||||||
| 	result.LogicalBackupS3SecretAccessKey = fromCRD.LogicalBackup.S3SecretAccessKey | 	result.LogicalBackupS3SecretAccessKey = fromCRD.LogicalBackup.S3SecretAccessKey | ||||||
| 	result.LogicalBackupS3SSE = fromCRD.LogicalBackup.S3SSE | 	result.LogicalBackupS3SSE = fromCRD.LogicalBackup.S3SSE | ||||||
| 	result.LogicalBackupGoogleApplicationCredentials = fromCRD.LogicalBackup.GoogleApplicationCredentials | 	result.LogicalBackupGoogleApplicationCredentials = fromCRD.LogicalBackup.GoogleApplicationCredentials | ||||||
|  | 	result.LogicalBackupJobPrefix = fromCRD.LogicalBackup.JobPrefix | ||||||
| 
 | 
 | ||||||
| 	// debug config
 | 	// debug config
 | ||||||
| 	result.DebugLogging = fromCRD.OperatorDebug.DebugLogging | 	result.DebugLogging = fromCRD.OperatorDebug.DebugLogging | ||||||
|  |  | ||||||
|  | @ -121,6 +121,7 @@ type LogicalBackup struct { | ||||||
| 	LogicalBackupS3SecretAccessKey            string `name:"logical_backup_s3_secret_access_key" default:""` | 	LogicalBackupS3SecretAccessKey            string `name:"logical_backup_s3_secret_access_key" default:""` | ||||||
| 	LogicalBackupS3SSE                        string `name:"logical_backup_s3_sse" default:""` | 	LogicalBackupS3SSE                        string `name:"logical_backup_s3_sse" default:""` | ||||||
| 	LogicalBackupGoogleApplicationCredentials string `name:"logical_backup_google_application_credentials" default:""` | 	LogicalBackupGoogleApplicationCredentials string `name:"logical_backup_google_application_credentials" default:""` | ||||||
|  | 	LogicalBackupJobPrefix                    string `name:"logical_backup_job_prefix" default:"logical-backup-"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Operator options for connection pooler
 | // Operator options for connection pooler
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue