Init repo and 1.0.0 release
Change-Id: I48bb169075cb46db7733fe3357c217c736cb019c
diff --git a/sdfabric/Chart.yaml b/sdfabric/Chart.yaml
new file mode 100644
index 0000000..0c7d0c1
--- /dev/null
+++ b/sdfabric/Chart.yaml
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+#
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v2
+name: sdfabric
+description: A chart to deploy all SD-Fabric components
+kubeVersion: ">=1.18.0"
+type: application
+version: 1.0.0
+keywords:
+ - aether
+ - sdn
+ - sdfabric
+home: https://opennetworking.org/sd-fabric/
+maintainers:
+ - name: Aether Ops team
+ email: support@opennetworking.org
+dependencies:
+ - name: onos-classic
+ repository: https://charts.onosproject.org
+ version: 0.1.23
+ - name: stratum
+ repository: https://charts.stratumproject.org/
+ version: 0.1.13
diff --git a/sdfabric/README.md b/sdfabric/README.md
new file mode 100644
index 0000000..a7398d7
--- /dev/null
+++ b/sdfabric/README.md
@@ -0,0 +1,33 @@
+<!--
+SPDX-FileCopyrightText: 2020 Open Networking Foundation <info@opennetworking.org>
+
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+-->
+
+# SD-Fabric chart
+
+## Prerequest
+
+See [SD-Fabric deployment guide](https://docs.sd-fabric.org/master/deployment.html) and
+deploy all necessary components like Kubernetes and switch.
+
+## Configuration
+
+| Name | Description |
+|------|-------------|
+| .Values.image.credential.secretName | Name for the Kubernetes secret to store the credential |
+| .Values.image.credential.registry | The container registry |
+| .Values.image.credential.username | The username to login the container registry |
+| .Values.image.credential.password | The password to login the container registry |
+| .Values.onos-classic | See <https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic> |
+| .Values.stratum | See <https://github.com/stratum/stratum-helm-charts/tree/master/stratum> |
+
+## Installation
+
+Modify values.yaml according to the explanations above, then run the following command:
+
+```bash
+helm upgrade --install -f my-values.yaml sdfabric .
+```
+
+This command will deploy the SD-Fabric helm chart with release name `sdfabric` in the current context.
diff --git a/sdfabric/templates/secret-registry.yaml b/sdfabric/templates/secret-registry.yaml
new file mode 100644
index 0000000..7121fdc
--- /dev/null
+++ b/sdfabric/templates/secret-registry.yaml
@@ -0,0 +1,18 @@
+{{/*
+# Copyright 2020-present Open Networking Foundation
+
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+*/}}
+
+{{- if .Values.image.credential }}
+---
+kind: Secret
+apiVersion: v1
+metadata:
+ name: "{{ .Values.image.credential.secretName }}"
+ labels:
+ release: {{ .Release.Name }}
+type: kubernetes.io/dockerconfigjson
+data:
+ .dockerconfigjson: {{ printf `{"auths":{%s:{"auth":"%s"}}}` (.Values.image.credential.registry | quote) (printf "%s:%s" .Values.image.credential.username .Values.image.credential.password | b64enc) | b64enc | quote }}
+{{- end }}
diff --git a/sdfabric/values.yaml b/sdfabric/values.yaml
new file mode 100644
index 0000000..74ba821
--- /dev/null
+++ b/sdfabric/values.yaml
@@ -0,0 +1,110 @@
+# SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+#
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+image:
+ credential:
+ secretName: &image-secret-name registry-credential
+ registry: registry.aetherproject.org
+ username: changeit
+ password: changeit
+
+onos-classic:
+ image:
+ repository: registry.aetherproject.org/tost/tost
+ tag: master-2021-10-01
+ pullSecrets:
+ - *image-secret-name
+
+ replicas: 3
+
+ ports:
+ - name: up4
+ port: 51001
+ - name: east-west
+ port: 9876
+ - name: cli
+ port: 8101
+ - name: ui
+ port: 8181
+
+ apps:
+ - org.onosproject.lldpprovider
+ - org.onosproject.hostprovider
+ - org.onosproject.netcfghostprovider
+ - org.onosproject.gui
+ - org.onosproject.drivers.barefoot
+ - org.onosproject.segmentrouting
+ - org.onosproject.t3
+ - org.omecproject.up4
+ - org.stratumproject.fabric-tna
+ - org.onosproject.dhcprelay
+ - org.onosproject.hostprobingprovider
+
+ logging:
+ karafVersion: 4.2.9
+ config: |
+ # Common pattern layout for appenders
+ log4j2.stdout.pattern = %d{RFC3339} %-5level [%c{1}] %msg%n%throwable
+
+ # Root logger
+ log4j2.rootLogger.level = INFO
+
+ # OSGi appender
+ log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi
+ log4j2.appender.osgi.type = PaxOsgi
+ log4j2.appender.osgi.name = PaxOsgi
+ log4j2.appender.osgi.filter = *
+
+ # stdout appender
+ log4j2.rootLogger.appenderRef.Console.ref = Console
+ log4j2.appender.console.type = Console
+ log4j2.appender.console.name = Console
+ log4j2.appender.console.layout.type = PatternLayout
+ log4j2.appender.console.layout.pattern = ${log4j2.stdout.pattern}
+
+ # SSHD logger
+ log4j2.logger.sshd.name = org.apache.sshd
+ log4j2.logger.sshd.level = INFO
+
+ # Spifly logger
+ log4j2.logger.spifly.name = org.apache.aries.spifly
+ log4j2.logger.spifly.level = WARN
+
+ annotations:
+ fluentbit.io/parser: onos
+
+ atomix:
+ replicas: 3
+ persistence:
+ enabled: false
+
+ config:
+ netcfg: >
+ {}
+ componentConfig: {}
+
+stratum:
+ image:
+ registry: docker.io
+ repository: stratumproject/stratum-bfrt
+ tag: 21.09.24-9.5.0
+ pullPolicy: IfNotPresent
+ pullSecrets:
+ - *image-secret-name
+
+ annotations:
+ fluentbit.io/parser: stratum
+
+ # Specify nodeSelector to pin Stratum to switches only
+ #
+ # nodeSelector:
+ # node-role.aetherproject.org: switch
+
+ # Override NoSchedule for Stratum to be scheduled on switches
+ #
+ # tolerations:
+ # - key: node-role.aetherproject.org
+ # value: switch
+ # effect: NoSchedule
+ config: false