# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Default values for ironic.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value

---
release_group: null

helm3_hook: true

labels:
  api:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  conductor:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled
  job:
    node_selector_key: openstack-control-plane
    node_selector_value: enabled

images:
  tags:
    ironic_manage_cleaning_network: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    ironic_retrive_cleaning_network: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    ironic_retrive_swift_config: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    # Bootstrap image requires curl
    bootstrap: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    db_drop: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    db_init: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    ironic_db_sync: docker.io/openstackhelm/ironic:2024.1-ubuntu_jammy
    ks_user: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    ks_service: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    ks_endpoints: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
    rabbit_init: docker.io/rabbitmq:3.13-management
    ironic_api: docker.io/openstackhelm/ironic:2024.1-ubuntu_jammy
    ironic_conductor: docker.io/openstackhelm/ironic:2024.1-ubuntu_jammy
    ironic_pxe: docker.io/openstackhelm/ironic:2024.1-ubuntu_jammy
    ironic_pxe_init: docker.io/openstackhelm/ironic:2024.1-ubuntu_jammy
    ironic_pxe_http: docker.io/nginx:1.13.3
    dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal
    image_repo_sync: docker.io/docker:17.07.0
  pull_policy: "IfNotPresent"
  local_registry:
    active: false
    exclude:
      - dep_check
      - image_repo_sync

conf:
  paste:
    override:
    append:
  policy: {}
  tftp_map_file: |
    re ^(/tftpboot/) /tftpboot/\2
    re ^/tftpboot/ /tftpboot/
    re ^(^/) /tftpboot/\1
    re ^([^/]) /tftpboot/\1
  nginx: |
    user  nginx;
    worker_processes  1;
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    events {
        worker_connections  1024;
    }
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
        sendfile        on;
        #tcp_nopush     on;
        keepalive_timeout  65;
        #gzip  on;
        server {
          listen       OSH_PXE_IP:{{ tuple "baremetal" "internal" "pxe_http" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }};
          server_name  localhost;
          #charset koi8-r;
          #access_log  /var/log/nginx/host.access.log  main;
          location / {
              root   /var/lib/openstack-helm/httpboot;
          }
        }
    }
  ironic:
    DEFAULT:
      log_config_append: /etc/ironic/logging.conf
    api:
      port: null
    conductor:
      api_url: null
    database:
      connection: null
    deploy:
      http_root: /var/lib/openstack-helm/httpboot
    glance:
      auth_type: password
      swift_temp_url_duration: 86400
      temp_url_endpoint_type: swift
      swift_container: glance
      swift_api_version: v1
      auth_section: glance
    inspector:
      auth_type: password
    keystone_authtoken:
      service_token_roles: service
      service_token_roles_required: true
      auth_type: password
      auth_version: v3
    neutron:
      auth_type: password
    pxe:
      pxe_append_params: "nofb nomodeset vga=normal ipa-debug=1"
      images_path: /var/lib/openstack-helm/ironic/images
      instance_master_path: /var/lib/openstack-helm/ironic/master_images
      pxe_config_template: $pybasedir/drivers/modules/ipxe_config.template
      uefi_pxe_config_template: $pybasedir/drivers/modules/ipxe_config.template
      tftp_root: /var/lib/openstack-helm/tftpboot
      tftp_master_path: /var/lib/openstack-helm/tftpboot/master_images
      pxe_bootfile_name: undionly.kpxe
      uefi_pxe_bootfile_name: ipxe.efi
      ipxe_enabled: true
    service_catalog:
      auth_type: password
    service_user:
      auth_type: password
      send_service_user_token: true
    swift:
      auth_url: null
    oslo_policy:
      policy_file: /etc/ironic/policy.yaml
  logging:
    loggers:
      keys:
        - root
        - ironic
    handlers:
      keys:
        - stdout
        - stderr
        - "null"
    formatters:
      keys:
        - context
        - default
    logger_root:
      level: WARNING
      handlers: 'null'
    logger_ironic:
      level: INFO
      handlers:
        - stdout
      qualname: ironic
    logger_amqp:
      level: WARNING
      handlers: stderr
      qualname: amqp
    logger_amqplib:
      level: WARNING
      handlers: stderr
      qualname: amqplib
    logger_eventletwsgi:
      level: WARNING
      handlers: stderr
      qualname: eventlet.wsgi.server
    logger_sqlalchemy:
      level: WARNING
      handlers: stderr
      qualname: sqlalchemy
    logger_boto:
      level: WARNING
      handlers: stderr
      qualname: boto
    handler_null:
      class: logging.NullHandler
      formatter: default
      args: ()
    handler_stdout:
      class: StreamHandler
      args: (sys.stdout,)
      formatter: context
    handler_stderr:
      class: StreamHandler
      args: (sys.stderr,)
      formatter: context
    formatter_context:
      class: oslo_log.formatters.ContextFormatter
      datefmt: "%Y-%m-%d %H:%M:%S"
    formatter_default:
      format: "%(message)s"
      datefmt: "%Y-%m-%d %H:%M:%S"

conductor:
  http:
    enabled: true
    init_script: |
      #!/bin/bash
      set -ex
      if [ "x" == "x${PROVISIONER_INTERFACE}" ]; then
        echo "Provisioner interface is not set"
        exit 1
      fi

      function net_pxe_addr {
       ip addr | awk "/inet / && /${PROVISIONER_INTERFACE}/{print \$2; exit }"
      }
      function net_pxe_ip {
       echo $(net_pxe_addr) | awk -F '/' '{ print $1; exit }'
      }
      PXE_IP=$(net_pxe_ip)

      if [ "x" == "x${PXE_IP}" ]; then
        echo "Could not find IP for pxe to bind to"
        exit 1
      fi

      sed "s|OSH_PXE_IP|${PXE_IP}|g" /etc/nginx/nginx.conf > /tmp/pod-shared/nginx.conf
    script: |
      #!/bin/bash
      set -ex
      mkdir -p /var/lib/openstack-helm/httpboot
      cp -v /tmp/pod-shared/nginx.conf /etc/nginx/nginx.conf
      exec nginx -g 'daemon off;'
  pxe:
    enabled: true
    init_script: |
      #!/bin/bash
      set -ex
      # default to Ubuntu path
      FILEPATH=${FILEPATH:-/usr/lib/ipxe}

      mkdir -p /var/lib/openstack-helm/tftpboot
      mkdir -p /var/lib/openstack-helm/tftpboot/master_images

      for FILE in undionly.kpxe ipxe.efi pxelinux.0 snponly.efi; do
        # copy in default file
        if [ -f $FILEPATH/$FILE ]; then
          cp -v $FILEPATH/$FILE /var/lib/openstack-helm/tftpboot
        fi

      done
    script: |
      #!/bin/bash
      set -ex
      function net_pxe_addr {
       ip addr | awk "/inet / && /${PROVISIONER_INTERFACE}/{print \$2; exit }"
      }
      function net_pxe_ip {
       echo $(net_pxe_addr) | awk -F '/' '{ print $1; exit }'
      }
      PXE_IP=$(net_pxe_ip)

      if [ "x" == "x${PXE_IP}" ]; then
        echo "Could not find IP for pxe to bind to"
        exit 1
      fi

      ln -s /var/lib/openstack-helm/tftpboot /tftpboot
      exec /usr/sbin/in.tftpd \
        --verbose \
        --foreground \
        --user root \
        --address ${PXE_IP}:69 \
        --map-file /tftp-map-file /tftpboot

network:
  pxe:
    device: ironic-pxe
    neutron_network_name: baremetal
    neutron_subnet_name: baremetal
    neutron_provider_network: ironic
    neutron_subnet_gateway: 172.24.6.1/24
    neutron_subnet_cidr: 172.24.6.0/24
    neutron_subnet_alloc_start: 172.24.6.100
    neutron_subnet_alloc_end: 172.24.6.200
    neutron_subnet_dns_nameserver: 10.96.0.10
  api:
    ingress:
      public: true
      classes:
        namespace: "nginx"
        cluster: "nginx-cluster"
      annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /
    node_port:
      enabled: false
      port: 30511

bootstrap:
  image:
    enabled: true
    openstack:
      enabled: true
      ks_user: ironic
    # NOTE: if source_base is null the source will be used as is
    source_base: http://tarballs.openstack.org/ironic-python-agent/tinyipa/files
    structured:
      ironic-agent.initramfs:
        source: tinyipa-stable-wallaby.gz
        disk_format: ari
        container_format: ari
      ironic-agent.kernel:
        source: tinyipa-stable-wallaby.vmlinuz
        disk_format: aki
        container_format: aki
  network:
    enabled: true
    openstack:
      enabled: true
  object_store:
    enabled: true
    openstack:
      enabled: true

dependencies:
  dynamic:
    common:
      local_image_registry:
        jobs:
          - ironic-image-repo-sync
        services:
          - endpoint: node
            service: local_image_registry
  static:
    api:
      jobs:
        - ironic-db-sync
        - ironic-ks-user
        - ironic-ks-endpoints
        - ironic-manage-cleaning-network
        - ironic-rabbit-init
      services:
        - endpoint: internal
          service: oslo_db
        - endpoint: internal
          service: identity
        - endpoint: internal
          service: oslo_messaging
    bootstrap:
      jobs: null
      services:
        - endpoint: internal
          service: identity
        - endpoint: internal
          service: image
        - endpoint: internal
          service: baremetal
    conductor:
      jobs:
        - ironic-db-sync
        - ironic-ks-user
        - ironic-ks-endpoints
        - ironic-manage-cleaning-network
        - ironic-rabbit-init
      services:
        - endpoint: internal
          service: oslo_db
        - endpoint: internal
          service: identity
        - endpoint: internal
          service: baremetal
        - endpoint: internal
          service: oslo_messaging
    db_drop:
      services:
        - endpoint: internal
          service: oslo_db
    db_init:
      services:
        - endpoint: internal
          service: oslo_db
    db_sync:
      jobs:
        - ironic-db-init
      services:
        - endpoint: internal
          service: oslo_db
    ks_endpoints:
      jobs:
        - ironic-ks-service
      services:
        - endpoint: internal
          service: identity
    ks_service:
      services:
        - endpoint: internal
          service: identity
    ks_user:
      services:
        - endpoint: internal
          service: identity
    rabbit_init:
      services:
      - endpoint: internal
        service: oslo_messaging
    manage_cleaning_network:
      services:
        - endpoint: internal
          service: network
    image_repo_sync:
      services:
        - endpoint: internal
          service: local_image_registry

# Names of secrets used by bootstrap and environmental checks
secrets:
  identity:
    admin: ironic-keystone-admin
    ironic: ironic-keystone-user
    glance: ironic-glance-keystone-user
  oslo_db:
    admin: ironic-db-admin
    ironic: ironic-db-user
  oslo_messaging:
    admin: ironic-rabbitmq-admin
    ironic: ironic-rabbitmq-user
  oci_image_registry:
    ironic: ironic-oci-image-registry

# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
endpoints:
  cluster_domain_suffix: cluster.local
  local_image_registry:
    name: docker-registry
    namespace: docker-registry
    hosts:
      default: localhost
      internal: docker-registry
      node: localhost
    host_fqdn_override:
      default: null
    port:
      registry:
        node: 5000
  oci_image_registry:
    name: oci-image-registry
    namespace: oci-image-registry
    auth:
      enabled: false
      ironic:
        username: ironic
        password: password
    hosts:
      default: localhost
    host_fqdn_override:
      default: null
    port:
      registry:
        default: null
  identity:
    name: keystone
    auth:
      admin:
        region_name: RegionOne
        username: admin
        password: password
        project_name: admin
        user_domain_name: default
        project_domain_name: default
      glance:
        role: admin,service
        region_name: RegionOne
        username: glance
        password: password
        project_name: service
        user_domain_name: service
        project_domain_name: service
      ironic:
        role: admin,service
        region_name: RegionOne
        username: ironic
        password: password
        project_name: service
        user_domain_name: service
        project_domain_name: service
    hosts:
      default: keystone
      internal: keystone-api
    host_fqdn_override:
      default: null
    path:
      default: /v3
    scheme:
      default: http
    port:
      api:
        default: 80
        internal: 5000
  baremetal:
    name: ironic
    hosts:
      default: ironic-api
      public: ironic
    host_fqdn_override:
      default: null
    path:
      default: null
    scheme:
      default: http
    port:
      api:
        default: 6385
        public: 80
      pxe_http:
        default: 8080
  image:
    name: glance
    hosts:
      default: glance-api
      public: glance
    host_fqdn_override:
      default: null
    path:
      default: null
    scheme:
      default: http
    port:
      api:
        default: 9292
        public: 80
  oslo_db:
    auth:
      admin:
        username: root
        password: password
      ironic:
        username: ironic
        password: password
    hosts:
      default: mariadb
    host_fqdn_override:
      default: null
    path: /ironic
    scheme: mysql+pymysql
    port:
      mysql:
        default: 3306
  oslo_cache:
    auth:
      # NOTE(portdirect): this is used to define the value for keystone
      # authtoken cache encryption key, if not set it will be populated
      # automatically with a random value, but to take advantage of
      # this feature all services should be set to use the same key,
      # and memcache service.
      memcache_secret_key: null
    hosts:
      default: memcached
    host_fqdn_override:
      default: null
    port:
      memcache:
        default: 11211
  oslo_messaging:
    auth:
      admin:
        username: rabbitmq
        password: password
      ironic:
        username: ironic
        password: password
    statefulset:
      replicas: 2
      name: rabbitmq-rabbitmq
    hosts:
      default: rabbitmq
    host_fqdn_override:
      default: null
    path: /ironic
    scheme: rabbit
    port:
      amqp:
        default: 5672
      http:
        default: 15672
  network:
    name: neutron
    hosts:
      default: neutron-server
      public: neutron
    host_fqdn_override:
      default: null
    path:
      default: null
    scheme:
      default: 'http'
    port:
      api:
        default: 9696
        public: 80
  object_store:
    name: swift
    namespace: ceph
    auth:
      glance:
        tmpurlkey: supersecret
    hosts:
      default: ceph-rgw
    host_fqdn_override:
      default: null
    path:
      default: /swift/v1/KEY_$(tenant_id)s
    scheme:
      default: http
    port:
      api:
        default: 8088
  fluentd:
    namespace: null
    name: fluentd
    hosts:
      default: fluentd-logging
    host_fqdn_override:
      default: null
    path:
      default: null
    scheme: 'http'
    port:
      service:
        default: 24224
      metrics:
        default: 24220

pod:
  affinity:
    anti:
      type:
        default: preferredDuringSchedulingIgnoredDuringExecution
      topologyKey:
        default: kubernetes.io/hostname
      weight:
        default: 10
  tolerations:
    ironic:
      enabled: false
      tolerations:
        - key: node-role.kubernetes.io/master
          operator: Exists
          effect: NoSchedule
        - key: node-role.kubernetes.io/control-plane
          operator: Exists
          effect: NoSchedule
  mounts:
    ironic_api:
      init_container: null
      ironic_api:
        volumeMounts:
        volumes:
    ironic_conductor:
      init_container: null
      ironic_conductor:
        volumeMounts:
        volumes:
    ironic_bootstrap:
      init_container: null
      ironic_bootstrap:
        volumeMounts:
        volumes:
    ironic_db_sync:
      ironic_db_sync:
        volumeMounts:
        volumes:
  replicas:
    api: 1
    conductor: 1
  lifecycle:
    upgrades:
      deployments:
        revision_history: 3
        pod_replacement_strategy: RollingUpdate
        rolling_update:
          max_unavailable: 1
          max_surge: 3
    disruption_budget:
      api:
        min_available: 0
    termination_grace_period:
      api:
        timeout: 30
  resources:
    enabled: false
    api:
      requests:
        memory: "128Mi"
        cpu: "100m"
      limits:
        memory: "1024Mi"
        cpu: "2000m"
    conductor:
      requests:
        memory: "128Mi"
        cpu: "100m"
      limits:
        memory: "1024Mi"
        cpu: "2000m"
    jobs:
      bootstrap:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      db_drop:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      db_init:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      db_sync:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      ks_endpoints:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      ks_service:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      ks_user:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      rabbit_init:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      tests:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
      image_repo_sync:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "1024Mi"
          cpu: "2000m"
  useHostNetwork:
    conductor: true
  useHostIPC:
    conductor: true

network_policy:
  ironic:
    ingress:
      - {}
    egress:
      - {}

manifests:
  configmap_bin: true
  configmap_etc: true
  deployment_api: true
  ingress_api: true
  job_bootstrap: true
  job_db_drop: false
  job_db_init: true
  job_db_sync: true
  job_image_repo_sync: true
  job_ks_endpoints: true
  job_ks_service: true
  job_ks_user: true
  job_manage_cleaning_network: true
  job_rabbit_init: true
  pdb_api: true
  network_policy: false
  secret_db: true
  secret_keystone: true
  secret_rabbitmq: true
  secret_registry: true
  service_api: true
  service_ingress_api: true
  statefulset_conductor: true
...
