github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/mysql/mysql-manifest.yaml (about)

     1  ---
     2  apiVersion: v1
     3  kind: Namespace
     4  metadata:
     5    name: mysql-system
     6    labels:
     7      app.kubernetes.io/name: mysql
     8      app.kubernetes.io/instance: my-mysql
     9  ---
    10  # Source: mysql/templates/serviceaccount.yaml
    11  apiVersion: v1
    12  kind: ServiceAccount
    13  metadata:
    14    name: my-mysql
    15    namespace: mysql-system
    16    labels:
    17      app.kubernetes.io/name: mysql
    18      app.kubernetes.io/instance: my-mysql
    19  secrets:
    20    - name: my-mysql
    21  ---
    22  # Source: mysql/templates/secrets.yaml
    23  apiVersion: v1
    24  kind: Secret
    25  metadata:
    26    name: my-mysql
    27    namespace: mysql-system
    28    labels:
    29      app.kubernetes.io/name: mysql
    30      app.kubernetes.io/instance: my-mysql
    31  type: Opaque
    32  data:
    33    mysql-root-password: "RWZuaWJiQzFaeQ=="
    34    mysql-password: "dnR0TDlSaG1EbQ=="
    35    mysql-replication-password: "NWd1MUxrU09Kdw=="
    36  ---
    37  # Source: mysql/templates/primary/configmap.yaml
    38  apiVersion: v1
    39  kind: ConfigMap
    40  metadata:
    41    name: my-mysql-primary
    42    namespace: mysql-system
    43    labels:
    44      app.kubernetes.io/name: mysql
    45      app.kubernetes.io/instance: my-mysql
    46      app.kubernetes.io/component: primary
    47  data:
    48    my.cnf: |-
    49  
    50      [mysqld]
    51      default_authentication_plugin=mysql_native_password
    52      skip-name-resolve
    53      explicit_defaults_for_timestamp
    54      basedir=/opt/bitnami/mysql
    55      plugin_dir=/opt/bitnami/mysql/lib/plugin
    56      port=3306
    57      socket=/opt/bitnami/mysql/tmp/mysql.sock
    58      datadir=/bitnami/mysql/data
    59      tmpdir=/opt/bitnami/mysql/tmp
    60      max_allowed_packet=16M
    61      bind-address=0.0.0.0
    62      pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
    63      log-error=/opt/bitnami/mysql/logs/mysqld.log
    64      character-set-server=UTF8
    65      collation-server=utf8_general_ci
    66  
    67      [client]
    68      port=3306
    69      socket=/opt/bitnami/mysql/tmp/mysql.sock
    70      default-character-set=UTF8
    71      plugin_dir=/opt/bitnami/mysql/lib/plugin
    72  
    73      [manager]
    74      port=3306
    75      socket=/opt/bitnami/mysql/tmp/mysql.sock
    76      pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
    77  ---
    78  # Source: mysql/templates/secondary/configmap.yaml
    79  apiVersion: v1
    80  kind: ConfigMap
    81  metadata:
    82    name: my-mysql-secondary
    83    namespace: mysql-system
    84    labels:
    85      app.kubernetes.io/name: mysql
    86      app.kubernetes.io/instance: my-mysql
    87      app.kubernetes.io/component: secondary
    88  data:
    89    my.cnf: |-
    90  
    91      [mysqld]
    92      default_authentication_plugin=mysql_native_password
    93      skip-name-resolve
    94      explicit_defaults_for_timestamp
    95      basedir=/opt/bitnami/mysql
    96      port=3306
    97      socket=/opt/bitnami/mysql/tmp/mysql.sock
    98      datadir=/bitnami/mysql/data
    99      tmpdir=/opt/bitnami/mysql/tmp
   100      max_allowed_packet=16M
   101      bind-address=0.0.0.0
   102      pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
   103      log-error=/opt/bitnami/mysql/logs/mysqld.log
   104      character-set-server=UTF8
   105      collation-server=utf8_general_ci
   106  
   107      [client]
   108      port=3306
   109      socket=/opt/bitnami/mysql/tmp/mysql.sock
   110      default-character-set=UTF8
   111  
   112      [manager]
   113      port=3306
   114      socket=/opt/bitnami/mysql/tmp/mysql.sock
   115      pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
   116  ---
   117  # Source: mysql/templates/primary/svc-headless.yaml
   118  apiVersion: v1
   119  kind: Service
   120  metadata:
   121    name: my-mysql-primary-headless
   122    namespace: mysql-system
   123    labels:
   124      app.kubernetes.io/name: mysql
   125      app.kubernetes.io/instance: my-mysql
   126      app.kubernetes.io/component: primary
   127  spec:
   128    type: ClusterIP
   129    clusterIP: None
   130    publishNotReadyAddresses: true
   131    ports:
   132      - name: mysql
   133        port: 3306
   134        targetPort: mysql
   135    selector:
   136      app.kubernetes.io/name: mysql
   137      app.kubernetes.io/instance: my-mysql
   138      app.kubernetes.io/component: primary
   139  ---
   140  # Source: mysql/templates/primary/svc.yaml
   141  apiVersion: v1
   142  kind: Service
   143  metadata:
   144    name: my-mysql-primary
   145    namespace: mysql-system
   146    labels:
   147      app.kubernetes.io/name: mysql
   148      app.kubernetes.io/instance: my-mysql
   149      app.kubernetes.io/component: primary
   150  spec:
   151    type: ClusterIP
   152    ports:
   153      - name: mysql
   154        port: 3306
   155        protocol: TCP
   156        targetPort: mysql
   157    selector:
   158      app.kubernetes.io/name: mysql
   159      app.kubernetes.io/instance: my-mysql
   160      app.kubernetes.io/component: primary
   161  ---
   162  # Source: mysql/templates/secondary/svc-headless.yaml
   163  apiVersion: v1
   164  kind: Service
   165  metadata:
   166    name: my-mysql-secondary-headless
   167    namespace: mysql-system
   168    labels:
   169      app.kubernetes.io/name: mysql
   170      app.kubernetes.io/instance: my-mysql
   171      app.kubernetes.io/component: secondary
   172  spec:
   173    type: ClusterIP
   174    clusterIP: None
   175    publishNotReadyAddresses: true
   176    ports:
   177      - name: mysql
   178        port: 3306
   179        targetPort: mysql
   180    selector:
   181      app.kubernetes.io/name: mysql
   182      app.kubernetes.io/instance: my-mysql
   183      app.kubernetes.io/component: secondary
   184  ---
   185  # Source: mysql/templates/secondary/svc.yaml
   186  apiVersion: v1
   187  kind: Service
   188  metadata:
   189    name: my-mysql-secondary
   190    namespace: mysql-system
   191    labels:
   192      app.kubernetes.io/name: mysql
   193      app.kubernetes.io/instance: my-mysql
   194      app.kubernetes.io/component: secondary
   195  spec:
   196    type: ClusterIP
   197    ports:
   198      - name: mysql
   199        port: 3306
   200        protocol: TCP
   201        targetPort: mysql
   202    selector:
   203      app.kubernetes.io/name: mysql
   204      app.kubernetes.io/instance: my-mysql
   205      app.kubernetes.io/component: secondary
   206  ---
   207  # Source: mysql/templates/primary/statefulset.yaml
   208  apiVersion: apps/v1
   209  kind: StatefulSet
   210  metadata:
   211    name: my-mysql-primary
   212    namespace: mysql-system
   213    labels:
   214      app.kubernetes.io/name: mysql
   215      app.kubernetes.io/instance: my-mysql
   216      app.kubernetes.io/component: primary
   217  spec:
   218    replicas: 1
   219    selector:
   220      matchLabels:
   221        app.kubernetes.io/name: mysql
   222        app.kubernetes.io/instance: my-mysql
   223        app.kubernetes.io/component: primary
   224    serviceName: my-mysql-primary
   225    updateStrategy:
   226      type: RollingUpdate
   227    template:
   228      metadata:
   229        annotations:
   230          checksum/configuration: f85346c5341cc96a7a79636cb39ddba62548beb8f3c80220f5ca61f7b5e2d038
   231        labels:
   232          app.kubernetes.io/name: mysql
   233          app.kubernetes.io/instance: my-mysql
   234          app.kubernetes.io/component: primary
   235      spec:
   236        serviceAccountName: my-mysql
   237        affinity:
   238          podAntiAffinity:
   239            preferredDuringSchedulingIgnoredDuringExecution:
   240              - podAffinityTerm:
   241                  labelSelector:
   242                    matchLabels:
   243                      app.kubernetes.io/name: mysql
   244                      app.kubernetes.io/instance: my-mysql
   245                      app.kubernetes.io/component: primary
   246                  namespaces:
   247                    - "mysql-system"
   248                  topologyKey: kubernetes.io/hostname
   249                weight: 1
   250        securityContext:
   251          fsGroup: 1001
   252        containers:
   253          - name: mysql
   254            image: docker.io/bitnami/mysql:8.0.26-debian-10-r10
   255            imagePullPolicy: "IfNotPresent"
   256            securityContext:
   257              runAsUser: 1001
   258            env:
   259              - name: BITNAMI_DEBUG
   260                value: "false"
   261              - name: MYSQL_ROOT_PASSWORD
   262                valueFrom:
   263                  secretKeyRef:
   264                    name: my-mysql
   265                    key: mysql-root-password
   266              - name: MYSQL_DATABASE
   267                value: "my_database"
   268              - name: MYSQL_REPLICATION_MODE
   269                value: "master"
   270              - name: MYSQL_REPLICATION_USER
   271                value: "replicator"
   272              - name: MYSQL_REPLICATION_PASSWORD
   273                valueFrom:
   274                  secretKeyRef:
   275                    name: my-mysql
   276                    key: mysql-replication-password
   277            ports:
   278              - name: mysql
   279                containerPort: 3306
   280            livenessProbe:
   281              failureThreshold: 3
   282              initialDelaySeconds: 5
   283              periodSeconds: 10
   284              successThreshold: 1
   285              timeoutSeconds: 1
   286              exec:
   287                command:
   288                  - /bin/bash
   289                  - -ec
   290                  - |
   291                    password_aux="${MYSQL_ROOT_PASSWORD:-}"
   292                    if [[ -f "${MYSQL_ROOT_PASSWORD_FILE:-}" ]]; then
   293                        password_aux=$(cat "$MYSQL_ROOT_PASSWORD_FILE")
   294                    fi
   295                    mysqladmin status -uroot -p"${password_aux}"
   296            readinessProbe:
   297              failureThreshold: 3
   298              initialDelaySeconds: 5
   299              periodSeconds: 10
   300              successThreshold: 1
   301              timeoutSeconds: 1
   302              exec:
   303                command:
   304                  - /bin/bash
   305                  - -ec
   306                  - |
   307                    password_aux="${MYSQL_ROOT_PASSWORD:-}"
   308                    if [[ -f "${MYSQL_ROOT_PASSWORD_FILE:-}" ]]; then
   309                        password_aux=$(cat "$MYSQL_ROOT_PASSWORD_FILE")
   310                    fi
   311                    mysqladmin status -uroot -p"${password_aux}"
   312            startupProbe:
   313              failureThreshold: 10
   314              initialDelaySeconds: 15
   315              periodSeconds: 10
   316              successThreshold: 1
   317              timeoutSeconds: 1
   318              exec:
   319                command:
   320                  - /bin/bash
   321                  - -ec
   322                  - |
   323                    password_aux="${MYSQL_ROOT_PASSWORD:-}"
   324                    if [[ -f "${MYSQL_ROOT_PASSWORD_FILE:-}" ]]; then
   325                        password_aux=$(cat "$MYSQL_ROOT_PASSWORD_FILE")
   326                    fi
   327                    mysqladmin status -uroot -p"${password_aux}"
   328            resources:
   329              limits: { }
   330              requests: { }
   331            volumeMounts:
   332              - name: data
   333                mountPath: /bitnami/mysql
   334              - name: config
   335                mountPath: /opt/bitnami/mysql/conf/my.cnf
   336                subPath: my.cnf
   337        volumes:
   338          - name: config
   339            configMap:
   340              name: my-mysql-primary
   341    volumeClaimTemplates:
   342      - metadata:
   343          name: data
   344          labels:
   345            app.kubernetes.io/name: mysql
   346            app.kubernetes.io/instance: my-mysql
   347            app.kubernetes.io/component: primary
   348        spec:
   349          accessModes:
   350            - "ReadWriteOnce"
   351          resources:
   352            requests:
   353              storage: "80Gi"
   354          storageClassName: openebs-jiva-csi-sc
   355  ---
   356  # Source: mysql/templates/secondary/statefulset.yaml
   357  apiVersion: apps/v1
   358  kind: StatefulSet
   359  metadata:
   360    name: my-mysql-secondary
   361    namespace: mysql-system
   362    labels:
   363      app.kubernetes.io/name: mysql
   364      app.kubernetes.io/instance: my-mysql
   365      app.kubernetes.io/component: secondary
   366  spec:
   367    replicas: 1
   368    selector:
   369      matchLabels:
   370        app.kubernetes.io/name: mysql
   371        app.kubernetes.io/instance: my-mysql
   372        app.kubernetes.io/component: secondary
   373    serviceName: my-mysql-secondary
   374    updateStrategy:
   375      type: RollingUpdate
   376    template:
   377      metadata:
   378        annotations:
   379          checksum/configuration: 596f59f44d599592de8d355e3bdde90fc33342820324c49e54365aa43419c3e2
   380        labels:
   381          app.kubernetes.io/name: mysql
   382          app.kubernetes.io/instance: my-mysql
   383          app.kubernetes.io/component: secondary
   384      spec:
   385        serviceAccountName: my-mysql
   386        affinity:
   387          podAntiAffinity:
   388            preferredDuringSchedulingIgnoredDuringExecution:
   389              - podAffinityTerm:
   390                  labelSelector:
   391                    matchLabels:
   392                      app.kubernetes.io/name: mysql
   393                      app.kubernetes.io/instance: my-mysql
   394                      app.kubernetes.io/component: secondary
   395                  namespaces:
   396                    - "mysql-system"
   397                  topologyKey: kubernetes.io/hostname
   398                weight: 1
   399        securityContext:
   400          fsGroup: 1001
   401        containers:
   402          - name: mysql
   403            image: docker.io/bitnami/mysql:8.0.26-debian-10-r10
   404            imagePullPolicy: "IfNotPresent"
   405            securityContext:
   406              runAsUser: 1001
   407            env:
   408              - name: BITNAMI_DEBUG
   409                value: "false"
   410              - name: MYSQL_REPLICATION_MODE
   411                value: "slave"
   412              - name: MYSQL_MASTER_HOST
   413                value: my-mysql-primary
   414              - name: MYSQL_MASTER_PORT_NUMBER
   415                value: "3306"
   416              - name: MYSQL_MASTER_ROOT_USER
   417                value: "root"
   418              - name: MYSQL_REPLICATION_USER
   419                value: "replicator"
   420              - name: MYSQL_MASTER_ROOT_PASSWORD
   421                valueFrom:
   422                  secretKeyRef:
   423                    name: my-mysql
   424                    key: mysql-root-password
   425              - name: MYSQL_REPLICATION_PASSWORD
   426                valueFrom:
   427                  secretKeyRef:
   428                    name: my-mysql
   429                    key: mysql-replication-password
   430            ports:
   431              - name: mysql
   432                containerPort: 3306
   433            livenessProbe:
   434              failureThreshold: 3
   435              initialDelaySeconds: 5
   436              periodSeconds: 10
   437              successThreshold: 1
   438              timeoutSeconds: 1
   439              exec:
   440                command:
   441                  - /bin/bash
   442                  - -ec
   443                  - |
   444                    password_aux="${MYSQL_MASTER_ROOT_PASSWORD:-}"
   445                    if [[ -f "${MYSQL_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then
   446                        password_aux=$(cat "$MYSQL_MASTER_ROOT_PASSWORD_FILE")
   447                    fi
   448                    mysqladmin status -uroot -p"${password_aux}"
   449            readinessProbe:
   450              failureThreshold: 3
   451              initialDelaySeconds: 5
   452              periodSeconds: 10
   453              successThreshold: 1
   454              timeoutSeconds: 1
   455              exec:
   456                command:
   457                  - /bin/bash
   458                  - -ec
   459                  - |
   460                    password_aux="${MYSQL_MASTER_ROOT_PASSWORD:-}"
   461                    if [[ -f "${MYSQL_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then
   462                        password_aux=$(cat "$MYSQL_MASTER_ROOT_PASSWORD_FILE")
   463                    fi
   464                    mysqladmin status -uroot -p"${password_aux}"
   465            startupProbe:
   466              failureThreshold: 15
   467              initialDelaySeconds: 15
   468              periodSeconds: 10
   469              successThreshold: 1
   470              timeoutSeconds: 1
   471              exec:
   472                command:
   473                  - /bin/bash
   474                  - -ec
   475                  - |
   476                    password_aux="${MYSQL_MASTER_ROOT_PASSWORD:-}"
   477                    if [[ -f "${MYSQL_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then
   478                        password_aux=$(cat "$MYSQL_MASTER_ROOT_PASSWORD_FILE")
   479                    fi
   480                    mysqladmin status -uroot -p"${password_aux}"
   481            resources:
   482              limits: { }
   483              requests: { }
   484            volumeMounts:
   485              - name: data
   486                mountPath: /bitnami/mysql
   487              - name: config
   488                mountPath: /opt/bitnami/mysql/conf/my.cnf
   489                subPath: my.cnf
   490        volumes:
   491          - name: config
   492            configMap:
   493              name: my-mysql-secondary
   494    volumeClaimTemplates:
   495      - metadata:
   496          name: data
   497          labels:
   498            app.kubernetes.io/name: mysql
   499            app.kubernetes.io/instance: my-mysql
   500            app.kubernetes.io/component: secondary
   501        spec:
   502          accessModes:
   503            - "ReadWriteOnce"
   504          resources:
   505            requests:
   506              storage: "80Gi"
   507          storageClassName: openebs-jiva-csi-sc