local kube = import "../../../kube/hscloud.libsonnet";

{
    local top = self,
    local cfg = self.cfg,

    cfg:: {
        name: "wordpress",
        namespace: "personal-radex",
        domain: "wordpress.hs.radex.io",

        storageClassName: "waw-hdd-redundant-3",
        storageSize: "5Gi",
    },

    secrets:: {
        mysql: { secretKeyRef: { name: cfg.name, key: 'mysql_password' } },
        wordpress: { secretKeyRef: { name: cfg.name, key: 'wordpress_password' } },
    },

    ns: kube.Namespace(cfg.namespace),

    deployment: top.ns.Contain(kube.Deployment(cfg.name)) {
        spec+: {
            replicas: 1,
            template+: {
                spec+: {
                    containers_: {
                        default: kube.Container("default") {
                            image: 'bitnami/wordpress',
                            resources: {
                                requests: { cpu: "50m", memory: "128M" },
                                limits: { cpu: "750m", memory: "256M" },
                            },
                            ports_: {
                                http: { containerPort: 8080 },
                            },
                            env_: {
                                WORDPRESS_DATABASE_HOST: 'wordpress-mysql',
                                WORDPRESS_DATABASE_NAME: 'wordpress',
                                WORDPRESS_DATABASE_USER: 'wordpress',
                                WORDPRESS_DATABASE_PASSWORD: top.secrets.mysql,
                                WORDPRESS_USERNAME: 'admin',
                                WORDPRESS_PASSWORD: top.secrets.wordpress,
                            },
                        },
                    },
                },
            },
        },
    },

    service: top.ns.Contain(kube.Service(cfg.name)) {
        target:: top.deployment,
    },

    ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
        hosts:: [cfg.domain],
        target_service:: top.service,
    },

    mysql: {
        local mysql = self,

        volume: top.ns.Contain(kube.PersistentVolumeClaim("wordpress-mysql")) {
            storage: cfg.storageSize,
            storageClass: cfg.storageClassName,
        },

        deployment: top.ns.Contain(kube.Deployment("wordpress-mysql")) {
            spec+: {
                replicas: 1,
                template+: {
                    spec+: {
                        volumes_: {
                            data: kube.PersistentVolumeClaimVolume(mysql.volume),
                        },
                        containers_: {
                            default: kube.Container("default") {
                                image: "mysql:8.2.0",
                                ports_: {
                                    client: { containerPort: 3306 },
                                },
                                env_: {
                                    MYSQL_RANDOM_ROOT_PASSWORD: "yes",
                                    MYSQL_DATABASE: "wordpress",
                                    MYSQL_USER: "wordpress",
                                    MYSQL_PASSWORD: top.secrets.mysql,
                                },
                                volumeMounts_: {
                                    data: { mountPath: '/var/lib/mysql' },
                                },
                            }
                        },
                        securityContext: {
                            runAsUser: 999,
                        },
                    }
                }
            }
        },

        service: top.ns.Contain(kube.Service("wordpress-mysql")) {
            target:: mysql.deployment,
        },
    },
}
