apiVersion: data.packaging.carvel.dev/v1alpha1
kind: Package
metadata:
  name: supervisor.pinniped.dev.0.0.0-F3326187-009A-4313-B188-1B454D1A7E04
spec:
  refName: supervisor.pinniped.dev
  version: 0.0.0-F3326187-009A-4313-B188-1B454D1A7E04
  releaseNotes: |
    Initial release of the pinniped supervisor package, TODO: AUTOMATE THIS??
  valuesSchema:
    openAPIv3:
      type: object
      additionalProperties: false
      properties:
        app_name:
          type: string
          description: Name of pinniped-supervisor.
          default: pinniped-supervisor
        namespace:
          type: string
          description: Creates a new namespace statically in yaml with the given name and installs the app into that namespace.
          default: pinniped-supervisor
        into_namespace:
          type: string
          nullable: true
          description: If specified, assumes that a namespace of the given name already exists and installs the app into that namespace. If both `namespace` and `into_namespace` are specified, then only `into_namespace` is used.
          default: null
        custom_labels:
          nullable: true
          description: 'All resources created statically by yaml at install-time and all resources created dynamically by controllers at runtime will be labelled with `app: $app_name` and also with the labels specified here. The value of `custom_labels` must be a map of string keys to string values. The app can be uninstalled either by: 1. Deleting the static install-time yaml resources including the static namespace, which will cascade and also delete    resources that were dynamically created by controllers at runtime 2. Or, deleting all resources by label, which does not assume that there was a static install-time yaml namespace.'
          default: null
        replicas:
          type: integer
          description: Specify how many replicas of the Pinniped server to run.
          default: 2
        image_repo:
          type: string
          description: Specify either an image_digest or an image_tag. If both are given, only image_digest will be used.
          default: projects.registry.vmware.com/pinniped/pinniped-server
        image_digest:
          type: string
          nullable: true
          description: Specify either an image_digest or an image_tag. If both are given, only image_digest will be used.
          default: null
        image_tag:
          type: string
          description: Specify either an image_digest or an image_tag. If both are given, only image_digest will be used.
          default: latest
        image_pull_dockerconfigjson:
          type: object
          additionalProperties: false
          nullable: true
          description: 'Specifies a secret to be used when pulling the above `image_repo` container image. Can be used when the above image_repo is a private registry. Typically the value would be the output of: kubectl create secret docker-registry x --docker-server=https://example.io --docker-username=''USERNAME'' --docker-password=''PASSWORD'' --dry-run=client -o json | jq -r ''.data[''.dockerconfigjson'']'' Optional.'
          properties:
            auths:
              type: object
              additionalProperties: false
              properties:
                https://registry.example.com:
                  type: object
                  additionalProperties: false
                  properties:
                    username:
                      type: string
                      default: USERNAME
                    password:
                      type: string
                      default: PASSWORD
                    auth:
                      type: string
                      default: BASE64_ENCODED_USERNAME_COLON_PASSWORD
        deprecated_service_http_nodeport_port:
          type: integer
          nullable: true
          description: will be removed in a future release; when specified, creates a NodePort Service with this `port` value, with port 8080 as its `targetPort`
          default: null
        deprecated_service_http_nodeport_nodeport:
          type: integer
          nullable: true
          description: will be removed in a future release; the `nodePort` value of the NodePort Service, optional when `deprecated_service_http_nodeport_port` is specified
          default: null
        deprecated_service_http_loadbalancer_port:
          type: integer
          nullable: true
          description: will be removed in a future release; when specified, creates a LoadBalancer Service with this `port` value, with port 8080 as its `targetPort`
          default: null
        deprecated_service_http_clusterip_port:
          type: integer
          nullable: true
          description: '#! will be removed in a future release; when specified, creates a ClusterIP Service with this `port` value, with port 8080 as its `targetPort`'
          default: null
        service_https_nodeport_port:
          type: integer
          nullable: true
          description: '#! when specified, creates a NodePort Service with this `port` value, with port 8443 as its `targetPort`'
          default: null
        service_https_nodeport_nodeport:
          type: integer
          nullable: true
          description: '#! the `nodePort` value of the NodePort Service, optional when `service_https_nodeport_port` is specified'
          default: null
        service_https_loadbalancer_port:
          type: integer
          nullable: true
          description: '#! when specified, creates a LoadBalancer Service with this `port` value, with port 8443 as its `targetPort`'
          default: null
        service_https_clusterip_port:
          type: integer
          nullable: true
          description: '#! when specified, creates a ClusterIP Service with this `port` value, with port 8443 as its `targetPort`'
          default: null
        service_loadbalancer_ip:
          type: string
          nullable: true
          description: The `loadBalancerIP` value of the LoadBalancer Service. Ignored unless service_https_loadbalancer_port is provided.
          default: null
        log_level:
          type: string
          nullable: true
          description: default, when this value is left unset, only warnings and errors are printed. There is no way to suppress warning and error logs.
          default: null
        deprecated_log_format:
          type: string
          nullable: true
          description: 'Specify the format of logging: json (for machine parsable logs) and text (for legacy klog formatted logs). By default, when this value is left unset, logs are formatted in json. This configuration is deprecated and will be removed in a future release at which point logs will always be formatted as json.'
          default: null
        run_as_user:
          type: integer
          description: run_as_user specifies the user ID that will own the process, see the Dockerfile for the reasoning behind this choice
          default: 65532
        run_as_group:
          type: integer
          description: run_as_group specifies the group ID that will own the process, see the Dockerfile for the reasoning behind this choice
          default: 65532
        api_group_suffix:
          type: string
          description: Specify the API group suffix for all Pinniped API groups. By default, this is set to pinniped.dev, so Pinniped API groups will look like foo.pinniped.dev, authentication.concierge.pinniped.dev, etc. As an example, if this is set to tuna.io, then Pinniped API groups will look like foo.tuna.io. authentication.concierge.tuna.io, etc.
          default: pinniped.dev
        https_proxy:
          type: string
          nullable: true
          description: Set the standard golang HTTPS_PROXY and NO_PROXY environment variables on the Supervisor containers. These will be used when the Supervisor makes backend-to-backend calls to upstream identity providers using HTTPS, e.g. when the Supervisor fetches discovery documents, JWKS keys, and tokens from an upstream OIDC Provider. The Supervisor never makes insecure HTTP calls, so there is no reason to set HTTP_PROXY. Optional.
          default: null
        no_proxy:
          type: string
          description: do not proxy Kubernetes endpoints
          default: $(KUBERNETES_SERVICE_HOST),169.254.169.254,127.0.0.1,localhost,.svc,.cluster.local
        endpoints:
          type: object
          additionalProperties: false
          nullable: true
          description: Control the HTTP and HTTPS listeners of the Supervisor.
          properties:
            https:
              type: object
              additionalProperties: false
              properties:
                network:
                  type: string
                  default: tcp
                address:
                  type: string
                  default: 1.2.3.4:5678
        deprecated_insecure_accept_external_unencrypted_http_requests:
          type: boolean
          description: Set the standard golang HTTPS_PROXY and NO_PROXY environment variables on the Supervisor containers. These will be used when the Supervisor makes backend-to-backend calls to upstream identity providers using HTTPS, e.g. when the Supervisor fetches discovery documents, JWKS keys, and tokens from an upstream OIDC Provider. The Supervisor never makes insecure HTTP calls, so there is no reason to set HTTP_PROXY. Optional.
          default: false
  template:
    spec:
      fetch:
      - imgpkgBundle:
          image: kind-registry.local:5000/test/build/test/build-package-supervisor:0.0.0-F3326187-009A-4313-B188-1B454D1A7E04
      template:
      - ytt:
          paths:
          - config/
      - kbld:
          paths:
          - .imgpkg/images.yml
          - '-'
      deploy:
      - kapp: {}