github.com/replicatedhq/ship@v0.55.0/integration/failing/init/concourse/expected/rendered.yaml (about)

     1  apiVersion: v1
     2  kind: Namespace
     3  metadata:
     4    annotations:
     5      helm.sh/resource-policy: keep
     6    labels:
     7      app: concourse-concourse
     8      chart: concourse-3.7.2
     9      heritage: Tiller
    10      release: concourse
    11    name: concourse-main
    12  ---
    13  apiVersion: v1
    14  kind: ServiceAccount
    15  metadata:
    16    labels:
    17      app: concourse-web
    18      release: concourse
    19    name: concourse-web
    20  ---
    21  apiVersion: v1
    22  kind: ServiceAccount
    23  metadata:
    24    labels:
    25      app: concourse-worker
    26      release: concourse
    27    name: concourse-worker
    28  ---
    29  apiVersion: rbac.authorization.k8s.io/v1beta1
    30  kind: Role
    31  metadata:
    32    labels:
    33      app: concourse-worker
    34      release: concourse
    35    name: concourse-worker
    36  rules:
    37  - apiGroups:
    38    - extensions
    39    resourceNames:
    40    - privileged
    41    resources:
    42    - podsecuritypolicies
    43    verbs:
    44    - use
    45  ---
    46  apiVersion: rbac.authorization.k8s.io/v1beta1
    47  kind: ClusterRole
    48  metadata:
    49    labels:
    50      app: concourse-web
    51      release: concourse
    52    name: concourse-web
    53  rules:
    54  - apiGroups:
    55    - ""
    56    resources:
    57    - secrets
    58    verbs:
    59    - get
    60  ---
    61  apiVersion: rbac.authorization.k8s.io/v1beta1
    62  kind: RoleBinding
    63  metadata:
    64    labels:
    65      app: concourse-web
    66      chart: concourse-3.7.2
    67      heritage: Tiller
    68      release: concourse
    69    name: concourse-web-main
    70    namespace: concourse-main
    71  roleRef:
    72    apiGroup: rbac.authorization.k8s.io
    73    kind: ClusterRole
    74    name: concourse-web
    75  subjects:
    76  - kind: ServiceAccount
    77    name: concourse-web
    78    namespace: default
    79  ---
    80  apiVersion: rbac.authorization.k8s.io/v1beta1
    81  kind: RoleBinding
    82  metadata:
    83    labels:
    84      app: concourse-worker
    85      release: concourse
    86    name: concourse-worker
    87  roleRef:
    88    apiGroup: rbac.authorization.k8s.io
    89    kind: Role
    90    name: concourse-worker
    91  subjects:
    92  - kind: ServiceAccount
    93    name: concourse-worker
    94  ---
    95  apiVersion: v1
    96  data: null
    97  kind: ConfigMap
    98  metadata:
    99    labels:
   100      app: postgresql
   101      release: concourse
   102    name: concourse-postgresql
   103  ---
   104  apiVersion: v1
   105  data:
   106    host-key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBMkFVUFh4dWlEQy9xckJXaklkVDVmdk5jTWxNRVlwUjNYNFNMUUlnTEMxVUxEc0NPCmZsZUtaK1dpNFJ6d2JrVUtpS21KbTVHZXlOVlZDRGRmdmREMVNkMSs1ZmFxbXAyL09RQnpMUzdvOE5ZL2J0TXcKOGg5bHg0S1ZKYUpKMUVNMUVpeUdZNDFOeDU5MUtQMTRwQmZyMC9OZE9JckR1Mkp2RjZlN0NIRWJyemtONTdrYgpCVlFrYUlNYVMwMVJ3LzVPZTY4R0ZhbGxpMmlpOEw4ZE5XVlZ6cXVCaDVQd1ZXaW12VGd3djNUWUcyVEg4TDFWClY3bisvelJScGtqTWwyK1BVb3VHcUQrQnArNHdGK2hwNEFXNXYyNENxanRMSkVNdjRJRUp2MkZSZnJPYXVCSVoKWGpBUzFTU2c5VmFUT1MzaXd4YVlydjh1RzFYZk1GSElDdmtFUFFJREFRQUJBb0lCQUc4N1c4anJYNnZLMkptMwpvb0ovT2VGbXltaVhXc0N3RmkrMi9rVkNSLzJUMHRmTHl4Ty9XK05YMldEMUY5Q1ArSGFhWmVNWFBwM0hTN3VwClY4RlQ0Wm9oVllCd1hUUzBXWXl1Y0tBcGNZVGhyVlFScHpobGRuRWZDbEdRbVZlVks3U3AvS0V5VjRTYzFTVkEKTDJpL2NJMTQyTjJPaG03c3BxdVZrTGN1RnNWSU56WjBmWEN2MjVkVHFia0VnalRKek5kQnp5Rlh2YzR6ME10OQpnVzE0TTdteitZS1lPZnNDeElFbTQzOGZDOWIxNkM5NnlJRkJkTisvamFQOHBtYjJSb0lFMkQwRjhiajVLMWhSCll5R0ZLTU9VNGU2Y1lxNTlpV2Z1Ykt1dTJXTkpFQmsvNWFPN3g3WHUyUzBrOHdJWWx3eEZ1dTRMZlIyS3ZpenUKK21GVmYza0NnWUVBOWUwKzQwdEpHcE9QTThoQUIzRHdYalljOGxDdXlZZjN6MzBUM1JxVk5DVVZTV25sYWovcwozRU5pNitOZzN1K1pzOGNSMkNGb3UrakFDbFR5V0x1U25JOXlBQ0QwZXlXOW40YnpZTVViZ2RDNnZuZUxqcHp4CndXUjlYdjVSbVpWbHk3eFd1cWNnRWVFZjhSTmNZSTNvWGJ5MGxhRjNFT2J2dUF4LzRFVElrRmNDZ1lFQTRONDIKdzFVRVdHb3BXQklJWFlIa0VQSFF1RjBTeFIyQ1p5aDlFeFRlU3hGcGh5aWJrY0hSakRXK3Q5MVpMblNtNWsxTgpUT2RZdWMwQXBCVjNVK1RleGVGdkRJOTRML096ZTZIdDVNYXRSUXo4a1J3TUZHSkwzVHJwYmdUbVdkZkcwNUFkCm9pU2NKendZMTZvSlhuS3VzeGlrN1YrZ0NDTk5FMC8yVXVNblk0c0NnWUFFZjgycHZPUGVmNXFjR09ySytBNzkKdWtHM1VUQ1JjVkpnVW1wOW5oSGl2VmJ4VytXZGx3UFBWOUJFZm9sMEtyQUdNUHNybUJqaGJ6V3NPcmVnVmZZdAp0UlloMkhpQWxFVXUyUG8wNkFaRHpyekw1VVlCV3UrMVdSQk9INXNBazFJa2N4S25JWTJkcGgrK2Vsc3pUUVZXClNiQ0lHRWNrWVFVN3VjYlJKSkVDeXdLQmdCYjR2SEZ4OHZLeFRhM3drYWd6eDcrdlpGb2hML1N4RWd4Rng1azIKYllzUHFVOGtaOWdaQzdZZUczQ2ZEU2hBeEhnTWQ1UWVvaUxBL1lyRm9wNFFhRzJnblA2VWZYdXdrcXBUbllEYwpod0RoMWI5aE5SNno5L29PdGFBR29oMlZmSHRLWXF5WXZ0Y0hQYVp5ZVdpTG9Lc3RIbFFkaTdTcEhvdVZoSjF0CkZTNEhBb0dBR3krNTYrenZkUk9qSnk5QTJNbi80QnZXcnN1NFJTUUlMQko2SGI0VHBGNDZwMmZuMHJ3cXloT2oKT2Njcyt4a2RFc0k5dzVwaFh6SUVlT3EyTHF2V0hEUHh0ZExweE9ycm14NEFmdEFXZE04UzErT3FUcHpIaWhLMQp5MVpPcldmdk9OK1hqV0ZGQUVlai9DcFFaa05Va1R6alR0U0MwZG5mQXZlWmxhc1FIZEk9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
   107    host-key-pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFEWUJROWZHNklNTCtxc0ZhTWgxUGwrODF3eVV3UmlsSGRmaEl0QWlBc0xWUXNPd0k1K1Y0cG41YUxoSFBCdVJRcUlxWW1ia1o3STFWVUlOMSs5MFBWSjNYN2w5cXFhbmI4NUFITXRMdWp3MWo5dTB6RHlIMlhIZ3BVbG9rblVRelVTTElaampVM0huM1VvL1hpa0YrdlQ4MTA0aXNPN1ltOFhwN3NJY1J1dk9RM251UnNGVkNSb2d4cExUVkhEL2s1N3J3WVZxV1dMYUtMd3Z4MDFaVlhPcTRHSGsvQlZhS2E5T0RDL2ROZ2JaTWZ3dlZWWHVmNy9ORkdtU015WGI0OVNpNGFvUDRHbjdqQVg2R25nQmJtL2JnS3FPMHNrUXkvZ2dRbS9ZVkYrczVxNEVobGVNQkxWSktEMVZwTTVMZUxERnBpdS95NGJWZDh3VWNnSytRUTkgQ29uY291cnNl
   108    local-users: dGVzdDp0ZXN0
   109    session-signing-key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBd0xxbC9yVUlhSStQWDdUbDNGV2NUZWU0c1FmOC9kYWFrQUxYeDk1NXRQd2tocWxZCmU0VDJWODRwL3lsRnZOV3BNNHZmY01ZS2ZNWTBKTEtnQWdCdkpoQ3l0U2tEQmhUQm9XbU42eUUwQUIxMVA5RW4KbElaUkJXTllxYUMyY1NnZTJaRDhxT1Nud2ZGaG5RQVc4KzdwRStFbEpBVmg3ZHRkRjNBNDc4SDUwbElpZ3E4SQp6TVdwMkVHSnBGQzcvVXUzNm9JTC8wM01OR0NtckgxanZ0VHVKaUFNUVVaWXlMMVJlQmt2dkhPenc5aTRIWFB5ClNNVnRjbGxtNE5CczJhVlB0d2hyMmt3U2tMdDh0MWJQZFJuNk9JeUVBdzVXa3R6QUthaVpua1R2ajZnM3h6ZHAKektjcmRsQnI5YXpubE52b1NpbkJVZnZ0d3lGbXZGTjFISGJBOXdJREFRQUJBb0lCQUU3Ry9EclVmSTlndnRYNwo5MGpNcFlzaWdGZThVQ2pobzJQaUJabG8wbzZyMGJKSlhpVisvOEo4UHFaUmxIUFBVYzRFQ2x6cVZqY1NQUllTCi9WeFVHUnFTRUxvRC9YeHExNHJHdm4reG5yTzlWc096Rmw2YldGcS9kT3BCQ3RITitHNHQyVmlmdmdLRVM4WUUKMTF6MTlzZHRhK1VCWGpuL1JGbmtRU0dmUkNJM1FxVGFZdmp4ZXZ0MHVXbHlQbXFrRlBRUXc4YnZISVh6b0IrQgpyemVpTWErK25NdmJYNXBBSDlYQTBCdmh5dUgzZkhpZFRVd2lWQnBrTWNwTFd0alAwQTBKVHNlY0RkYmluRERxCnVuMkVJbzh6TVdSd0tRTi9KblV4c2k4QVVFaWdCVENVcWVEZ1JFWHRXNjJ1dkZrU3BjVk1Yd21WaXR5TFlJVnkKcW5WTFVDRUNnWUVBNkl3WGtQMXFuU2ZjTmVvVkkveXBEdXoxL2tkcWNqU1BoTFllK2pkaUxMb0ZrTVc5QWxEbQpsendOYVdsVEZEOXlnbytOakpDbzYzL0E4SENtNTVzYWp3czVoWjZyMjB2ZFpjS0ZNazloMHFGNW9WQTdsa1EyCmd2RzJXYXpudVU3S2txaGZQK3BYaGlMZ1pLb0prc3QvK2c3cjZ1SHByZWR3RFk2aHhlQks0dnNDZ1lFQTFDcUgKOHl3QzVxVW8vMzZrUWcvVFUyYWROL1lFSGRKQUFiVTIzRVZyR1FTVm1uWFcwOEgyTkxGazB0c3hyd29ObmJncApQSWsySjdCaW1iSnZiTkQxN2licjRHQWtsRFRzUjhhSmtEbCswSmdOQ0FLOU4wN3FWdDFzN0ZYemhnOTVqVUw5CkVRVzU1ejYwR0FKcGVjcU53QTRKc2E4UDg1Mk4wMzU1T2JwOTJUVUNnWUJrT0J2ZjdKY0o2NmZIeEg0ZjZEK2oKb3hQUTVrNUZzY2s0VkpTOUdTbENSVmtvcjA5cHRCdnNpWUR1TU9vUkM5YjUxWXdYVEREQWJXcGxOT2Q1WVNydApBdFZqZEtKei9Cb0tSTzdLWTlPd3hzNTRhdStETHhxZkREU2VLUm9ram9SVytDRTBsblhwNVJYM3pDQWNGMytyCjhNcFRpOUQ5bFlTQkV6czg0QkRtQ1FLQmdRQ01jSDYvSzNIY0pKVm4wZmQrdHlVR2Z0VXc5c3N3eGp5U0pOYmsKcFpySDI2My9xV01EbHMrWGY1a2lyZTlNVTFaQ0FXWmlhTjBORm9lZC8yd2NWcEdFREFWMDU0OHUvMzByNGJLcgpZak9jZGhtaUpOWUZKMXFkRjBNRGliMkNEdnBCMUliWlhyWDQ2UnVqRE8ydXJiSjQzNUh4S05WaFIvaGFkOHhjCnR5S1l4UUtCZ0NWRGhOME1obmxVUUpWWmZYNDJBUG1GNGdRZzByM3NmTC9OR1hqRWpNSUtLRmU1YTg4ZVpWSHIKTDh4MStkcDBxN2N6QzhhL2wxRFV1aXdES2w4T0VweExzR0NxL0ovd0FmclNNUGlmdTZFVWxiVXdsSk9QZGdoYQorcC9LRkFlbEhYSjJ3Lzh5YWNrQWNhcmgzNVZQN2l4aHV2eHN3SE5kZ3Zmc0JURmNqbjMwCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
   110    worker-key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdVBlaFVtQlhBUUNvQTdUTEFRQ1loZit2emNaVnlqK1ZHWG5NaExIbldMazdkUmpvCkNVOEdnTmFtZFM1aDdHM3l3eE92S0EzWWpPTHI4WHlPTUxTNGMrZThON3RJemxNV2RpWGhlMGxjQkg5WjFhaTUKK0JvZjMvQmxEVUJrc2lLZGMxQStRY2ZYNnREd01rT081cmUxSDR2T0szSC9DeXBlNTh3Q0IwM0hZTmdiMDVFRApmVzFCajJxdnoyOVZ0bXlqd0VNdURzMTAwaU1xd0NmUFV4OW94WG1tWDhzVUJSbXcvWTFSeC84cGRLSWpLdzNtCmtXSUhIQk9TQ1BpbU8xcUM0N0FhOHYvVUg5aEVSQ3lreXVGSGlCaUtsbkl2WldtOWJZdmhzUlR6NGd0NUt6UlkKNk9JMG9WZUhsTE9IRFNLNDhEYThWV2lqMTVsT3FPMk54Nldzc1FJREFRQUJBb0lCQURFVDIyVU5GT2k2TU5wUwo1UzVONXlwZXpsbk9EME5MblpjVjN6TXlOUTB3a05zZ0Vha3VvNjRaeGk3L2NKSVlGanEyaFZvZVdsLy9jZFV3ClZGWU9EWWNMYk1CbzNBZUt1a0g5Q1JmNlBnVWZlVW1jckVOdFF4bmJJaVRpK2hUZDVHTU5Yb2Q3ckFtdENKNTkKbUhRVk9HUzNacXZXWW5LbSttbU1rdGszUlBpbnluWC9BNHkzV0hQYWN1QVM1OEhNMDlDazQzV2NITXhiR3BzTAovZ1pwSUN5RllaMkR2aU0rQUh5V0djbXc3TEpycEMwUUhvNitCQUZNczR4bFVlY05nVklGVXBmT29BY2ZzZHRHCks5ajRBYnVaNDdpRmlzYmF5KzFweWcvN081ZVJUZEdWUVJ0YzdQQk1PamVhNWpHc2ZtbERtZG4xWlM1MHlrdW4KQU5mb1E1VUNnWUVBOUFrNzNQUnk5bkxsUmt0NE9CQ0YvNGZ3VGhVQ01lZHNuV2FWalFCTUpZaW00RkIyaXZGNQpjS2RXdDN5L1JaSTg1S0tZdTBFWGhMRW9TSUVBZnowNTdSOHQzUWRWSzR0Wng2QjQ3VUZqQmpDWWVWTXR3SERRCnByeFFpT1BISUhDcGxCTkZ1R3pBNVZYTDlnUUxSRCtlazB1T3kyR0pKMFd1MXh5ZW91SStTVzhDZ1lFQXdna08KVE90T29ncW1jQUFMaldnZWVRaVpldGZsU0tiSmxwUU5obUNQQU1tMFNGSThlRjRTcFJYTHpkNDFWQzJtTEl3VApMM3RqYzcvOG9jWG9FbEZNNEwwZm85THgvU0hGSDRKRW41RlQwUFhQbXZzRjJKUmhzWEpGTEpTaWh4Ri85MVhzCjJhQmNRSUxQRnpMY3JJNk9GVWFrTndHVFUvQ0l4cGt6UnZRckc5OENnWUVBek5WblV1bzRDTmFkemFnUkszWHIKRTNZbDVWUksrRnBZMTdGQWZBNncyNXhjL2RGci91bjYxZTBQbzRuby9sdG1FejdMVmZtbjVPL1NjVEVlbXE1bwpqYmpyQlNoZmUrSkdwSUgwbnFpUWxxUjVodlNqWlhFTUliZlZIV0diUllaclFHZ0EwSEV3WkE3azJRWEI4ekkzClIwbFhmU3pNTTVPUTB1d3AxMnh4ZmE4Q2dZQkhJTHExUjZ6VGljUHBXcHJoZzBGb2JOYVdTWDRyVzdpYUVqdkMKL3JKdFA0TnUzM1o3U1VEY2MxajZabkoySVNYQlByZnB0L21FL09QSENaMUEyYnlzeGFkTGpwQldrb0tJUW1DVgpmZGlUeVFnSmIrdDhzU2YrdkR6UFVzMGhaakRhb2d6bzJmZjNUZnhNTE1Eb0lIbkZJdGdmc2R3bjhReXlnSVpqCmhDNHBVUUtCZ1FEcXN4bmtJNnlYRkU1Z3Noblc3SDh6cUtObHpLZC9kWkVMNmUrbFJ6NFIzVVkvS2NFa1JBZnEKWWkzY3dvOWZFM1Uza1NtcGw1TVF3VWpXbS9CWjdKeXVlb1kvNG5kd2FGUGdjMzRJS3NnSjB3YXU5cFppUUFCMQpEeHBPU0YrQlI3MUp4M3N4dklkQ09ETlR0bTY0NWo1eXJaVm5KQXVNUG9mbzVYRm11bkRvSkE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==
   111    worker-key-pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDNDk2RlNZRmNCQUtnRHRNc0JBSmlGLzYvTnhsWEtQNVVaZWN5RXNlZFl1VHQxR09nSlR3YUExcVoxTG1Ic2JmTERFNjhvRGRpTTR1dnhmSTR3dExoejU3dzN1MGpPVXhaMkplRjdTVndFZjFuVnFMbjRHaC9mOEdVTlFHU3lJcDF6VUQ1Qng5ZnEwUEF5UTQ3bXQ3VWZpODRyY2Y4TEtsN256QUlIVGNkZzJCdlRrUU45YlVHUGFxL1BiMVcyYktQQVF5NE96WFRTSXlyQUo4OVRIMmpGZWFaZnl4UUZHYkQ5alZISC95bDBvaU1yRGVhUllnY2NFNUlJK0tZN1dvTGpzQnJ5LzlRZjJFUkVMS1RLNFVlSUdJcVdjaTlsYWIxdGkrR3hGUFBpQzNrck5Gam80alNoVjRlVXM0Y05Jcmp3TnJ4VmFLUFhtVTZvN1kzSHBheXggQ29uY291cnNl
   112  kind: Secret
   113  metadata:
   114    labels:
   115      app: concourse-concourse
   116      release: concourse
   117    name: concourse-concourse
   118  type: Opaque
   119  ---
   120  apiVersion: v1
   121  data:
   122    postgres-password: Y29uY291cnNl
   123  kind: Secret
   124  metadata:
   125    labels:
   126      app: postgresql
   127      release: concourse
   128    name: concourse-postgresql
   129  type: Opaque
   130  ---
   131  apiVersion: v1
   132  kind: Service
   133  metadata:
   134    labels:
   135      app: postgresql
   136      release: concourse
   137    name: concourse-postgresql
   138  spec:
   139    ports:
   140    - name: postgresql
   141      port: 5432
   142      targetPort: postgresql
   143    selector:
   144      app: postgresql
   145      release: concourse
   146    type: ClusterIP
   147  ---
   148  apiVersion: v1
   149  kind: Service
   150  metadata:
   151    annotations: null
   152    labels:
   153      app: concourse-web
   154      release: concourse
   155    name: concourse-web
   156  spec:
   157    ports:
   158    - name: atc
   159      port: 8080
   160      targetPort: atc
   161    - name: tsa
   162      port: 2222
   163      targetPort: tsa
   164    selector:
   165      app: concourse-web
   166    type: ClusterIP
   167  ---
   168  apiVersion: v1
   169  kind: Service
   170  metadata:
   171    labels:
   172      app: concourse-worker
   173      release: concourse
   174    name: concourse-worker
   175  spec:
   176    clusterIP: None
   177    ports: []
   178    selector:
   179      app: concourse-worker
   180    type: ClusterIP
   181  ---
   182  apiVersion: extensions/v1beta1
   183  kind: Deployment
   184  metadata:
   185    labels:
   186      app: postgresql
   187      release: concourse
   188    name: concourse-postgresql
   189  spec:
   190    selector:
   191      matchLabels:
   192        app: postgresql
   193        release: concourse
   194    template:
   195      metadata:
   196        labels:
   197          app: postgresql
   198          release: concourse
   199      spec:
   200        containers:
   201        - args: []
   202          env:
   203          - name: POSTGRES_USER
   204            value: concourse
   205          - name: PGUSER
   206            value: concourse
   207          - name: POSTGRES_DB
   208            value: concourse
   209          - name: POSTGRES_INITDB_ARGS
   210            value: ""
   211          - name: PGDATA
   212            value: /var/lib/postgresql/data/pgdata
   213          - name: POSTGRES_PASSWORD
   214            valueFrom:
   215              secretKeyRef:
   216                key: postgres-password
   217                name: concourse-postgresql
   218          - name: POD_IP
   219            valueFrom:
   220              fieldRef:
   221                fieldPath: status.podIP
   222          image: postgres:9.6.2
   223          imagePullPolicy: ""
   224          livenessProbe:
   225            exec:
   226              command:
   227              - sh
   228              - -c
   229              - exec pg_isready --host $POD_IP
   230            failureThreshold: 6
   231            initialDelaySeconds: 120
   232            timeoutSeconds: 5
   233          name: concourse-postgresql
   234          ports:
   235          - containerPort: 5432
   236            name: postgresql
   237          readinessProbe:
   238            exec:
   239              command:
   240              - sh
   241              - -c
   242              - exec pg_isready --host $POD_IP
   243            initialDelaySeconds: 5
   244            periodSeconds: 5
   245            timeoutSeconds: 3
   246          resources:
   247            requests:
   248              cpu: 100m
   249              memory: 256Mi
   250          volumeMounts:
   251          - mountPath: /var/lib/postgresql/data/pgdata
   252            name: data
   253            subPath: postgresql-db
   254        volumes:
   255        - name: data
   256          persistentVolumeClaim:
   257            claimName: concourse-postgresql
   258  ---
   259  apiVersion: extensions/v1beta1
   260  kind: Deployment
   261  metadata:
   262    labels:
   263      app: concourse-web
   264      release: concourse
   265    name: concourse-web
   266  spec:
   267    replicas: 1
   268    template:
   269      metadata:
   270        annotations: {}
   271        labels:
   272          app: concourse-web
   273          release: concourse
   274      spec:
   275        affinity: null
   276        containers:
   277        - args:
   278          - web
   279          env:
   280          - name: CONCOURSE_BIND_PORT
   281            value: "8080"
   282          - name: CONCOURSE_ADD_LOCAL_USER
   283            valueFrom:
   284              secretKeyRef:
   285                key: local-users
   286                name: concourse-concourse
   287          - name: POD_IP
   288            valueFrom:
   289              fieldRef:
   290                fieldPath: status.podIP
   291          - name: CONCOURSE_PEER_URL
   292            value: http://$(POD_IP):$(CONCOURSE_BIND_PORT)
   293          - name: CONCOURSE_POSTGRES_HOST
   294            value: concourse-postgresql
   295          - name: CONCOURSE_POSTGRES_USER
   296            value: concourse
   297          - name: CONCOURSE_POSTGRES_PASSWORD
   298            valueFrom:
   299              secretKeyRef:
   300                key: postgres-password
   301                name: concourse-postgresql
   302          - name: CONCOURSE_POSTGRES_DATABASE
   303            value: concourse
   304          - name: CONCOURSE_KUBERNETES_IN_CLUSTER
   305            value: "true"
   306          - name: CONCOURSE_KUBERNETES_NAMESPACE_PREFIX
   307            value: concourse-
   308          - name: CONCOURSE_SESSION_SIGNING_KEY
   309            value: /concourse-keys/session_signing_key
   310          - name: CONCOURSE_MAIN_TEAM_LOCAL_USER
   311            value: test
   312          - name: CONCOURSE_TSA_BIND_PORT
   313            value: "2222"
   314          - name: CONCOURSE_TSA_HOST_KEY
   315            value: /concourse-keys/host_key
   316          - name: CONCOURSE_TSA_AUTHORIZED_KEYS
   317            value: /concourse-keys/worker_key.pub
   318          image: concourse/concourse:4.2.2
   319          imagePullPolicy: IfNotPresent
   320          livenessProbe:
   321            failureThreshold: 5
   322            httpGet:
   323              path: /api/v1/info
   324              port: atc
   325            initialDelaySeconds: 10
   326            periodSeconds: 15
   327            timeoutSeconds: 3
   328          name: concourse-web
   329          ports:
   330          - containerPort: 8080
   331            name: atc
   332          - containerPort: 2222
   333            name: tsa
   334          readinessProbe:
   335            httpGet:
   336              path: /api/v1/info
   337              port: atc
   338          resources:
   339            requests:
   340              cpu: 100m
   341              memory: 128Mi
   342          volumeMounts:
   343          - mountPath: /concourse-keys
   344            name: concourse-keys
   345            readOnly: true
   346          - mountPath: /concourse-auth
   347            name: auth-keys
   348            readOnly: true
   349        serviceAccountName: concourse-web
   350        tolerations: []
   351        volumes:
   352        - name: concourse-keys
   353          secret:
   354            defaultMode: 256
   355            items:
   356            - key: host-key
   357              path: host_key
   358            - key: session-signing-key
   359              path: session_signing_key
   360            - key: worker-key-pub
   361              path: worker_key.pub
   362            secretName: concourse-concourse
   363        - name: auth-keys
   364          secret:
   365            defaultMode: 256
   366            items: null
   367            secretName: concourse-concourse
   368  ---
   369  apiVersion: apps/v1beta1
   370  kind: StatefulSet
   371  metadata:
   372    labels:
   373      app: concourse-worker
   374      release: concourse
   375    name: concourse-worker
   376  spec:
   377    podManagementPolicy: Parallel
   378    replicas: 2
   379    serviceName: concourse-worker
   380    template:
   381      metadata:
   382        annotations: null
   383        labels:
   384          app: concourse-worker
   385          release: concourse
   386      spec:
   387        affinity:
   388          podAntiAffinity:
   389            preferredDuringSchedulingIgnoredDuringExecution:
   390            - podAffinityTerm:
   391                labelSelector:
   392                  matchLabels:
   393                    app: concourse-worker
   394                    release: concourse
   395                topologyKey: kubernetes.io/hostname
   396              weight: 100
   397        containers:
   398        - args:
   399          - -c
   400          - |-
   401            cp /dev/null /tmp/.liveness_probe
   402            rm -rf ${CONCOURSE_WORK_DIR:-/concourse-work-dir}/*
   403            while ! concourse retire-worker --name=${HOSTNAME} | grep -q worker-not-found; do
   404              touch /tmp/.pre_start_cleanup
   405              sleep 5
   406            done
   407            rm -f /tmp/.pre_start_cleanup
   408            concourse worker --name=${HOSTNAME} | tee -a /tmp/.liveness_probe
   409          command:
   410          - /bin/sh
   411          env:
   412          - name: CONCOURSE_WORK_DIR
   413            value: /concourse-work-dir
   414          - name: CONCOURSE_TSA_HOST
   415            value: concourse-web:2222
   416          - name: CONCOURSE_TSA_PUBLIC_KEY
   417            value: /concourse-keys/host_key.pub
   418          - name: CONCOURSE_TSA_WORKER_PRIVATE_KEY
   419            value: /concourse-keys/worker_key
   420          - name: CONCOURSE_GARDEN_BIND_PORT
   421            value: "7777"
   422          - name: CONCOURSE_BAGGAGECLAIM_DRIVER
   423            value: naive
   424          - name: LIVENESS_PROBE_FATAL_ERRORS
   425            value: |-
   426              guardian.api.garden-server.create.failed
   427              baggageclaim.api.volume-server.create-volume-async.failed-to-create
   428          image: concourse/concourse:4.2.2
   429          imagePullPolicy: IfNotPresent
   430          lifecycle:
   431            preStop:
   432              exec:
   433                command:
   434                - /bin/sh
   435                - -c
   436                - |-
   437                  while ! concourse retire-worker --name=${HOSTNAME} | grep -q worker-not-found; do
   438                    sleep 5
   439                  done
   440          livenessProbe:
   441            exec:
   442              command:
   443              - /bin/sh
   444              - -c
   445              - |-
   446                FATAL_ERRORS=$( echo "${LIVENESS_PROBE_FATAL_ERRORS}" | grep -q '\S' && \
   447                    grep -F "${LIVENESS_PROBE_FATAL_ERRORS}" /tmp/.liveness_probe )
   448                cp /dev/null /tmp/.liveness_probe
   449                if [ ! -z "${FATAL_ERRORS}" ]; then
   450                  >&2 echo "Fatal error detected: ${FATAL_ERRORS}"
   451                  exit 1
   452                fi
   453                if [ -f /tmp/.pre_start_cleanup ]; then
   454                  >&2 echo "Still trying to clean up before starting concourse. 'fly prune-worker -w ${HOSTNAME}' might need to be called to force cleanup."
   455                  exit 1
   456                fi
   457            failureThreshold: 1
   458            initialDelaySeconds: 10
   459            periodSeconds: 10
   460          name: concourse-worker
   461          resources:
   462            requests:
   463              cpu: 100m
   464              memory: 512Mi
   465          securityContext:
   466            privileged: true
   467          volumeMounts:
   468          - mountPath: /concourse-keys
   469            name: concourse-keys
   470            readOnly: true
   471          - mountPath: /concourse-work-dir
   472            name: concourse-work-dir
   473        serviceAccountName: concourse-worker
   474        terminationGracePeriodSeconds: 60
   475        tolerations: []
   476        volumes:
   477        - name: concourse-keys
   478          secret:
   479            defaultMode: 256
   480            items:
   481            - key: host-key-pub
   482              path: host_key.pub
   483            - key: worker-key
   484              path: worker_key
   485            - key: worker-key-pub
   486              path: worker_key.pub
   487            secretName: concourse-concourse
   488    updateStrategy:
   489      type: RollingUpdate
   490    volumeClaimTemplates:
   491    - metadata:
   492        name: concourse-work-dir
   493      spec:
   494        accessModes:
   495        - ReadWriteOnce
   496        resources:
   497          requests:
   498            storage: 20Gi
   499  ---
   500  apiVersion: policy/v1beta1
   501  kind: PodDisruptionBudget
   502  metadata:
   503    labels:
   504      app: concourse-worker
   505      release: concourse
   506    name: concourse-worker
   507  spec:
   508    minAvailable: 1
   509    selector:
   510      matchLabels:
   511        app: concourse-worker
   512  ---
   513  apiVersion: v1
   514  kind: PersistentVolumeClaim
   515  metadata:
   516    labels:
   517      app: postgresql
   518      release: concourse
   519    name: concourse-postgresql
   520  spec:
   521    accessModes:
   522    - ReadWriteOnce
   523    resources:
   524      requests:
   525        storage: 8Gi